zoukankan      html  css  js  c++  java
  • java基础讲解10-----类的高级特性

    一.final关键字

        1.final关键字修饰变量,表示变量不可以被改变,如果想修改,编译器不会接受的。 注意:final关键字定义的变量必须赋值

           public  static final   修饰  白送和i全局常量    定义时,必须赋值、(常用)

        

        2.final修饰方法    这个方法不能被重写

              可以防止子类修改该类的定义与实现方式

        3.final修饰类    这个类不能被继承

              一个类不让任何类继承,并且不让其他人对这个类进行任何改动

    二:内部类

        1.什么事内部类

            就是再类中,再定义一个类,内部类分为,成员内部类,局部内部类,匿名内部类

        2.什么是成员内部类

            在一个类中使用内部类,可以再内部类中 直接存取 所在类的所有私有成员,就是说,内部类,可以随意使用外部类的成员方法,成员变量

            内部类对象与外部类对象关系紧密,内外可以交互使用,彼此类中定义的变量

            可以使用this关键字获取内部类与外部类

      

          注意; 再内存中,所有的对象是放在堆中的,方法和方法中的形参,或者局部变量  是放在栈中的   

        

        3.什么是局部内部类

            内部类不仅仅可以放在类中定义,还可以再类的局部位置定义,如 在类中的方法或者任意的作用域中 都可以定义为内部类

        4.什么是匿名内部类

            在一个方法中,将return语句和内部类定义语句合并在一起

              return  new B()

              {

                //内部类实体

               }

            例子 :

            interface BB(){};

            public class  AA()

            {

              public BB  doit()

              {

                return new BB()

                {

                  private num=0;

                  public int getValue(){return num};   //再java编译的时候,doit方法内部 会先返回一个BB的引用,然后return语句中插入一个定义内部类的代码,这个类是没有名称的

                  //作用: 这种内部类的作用就是创建一个实现与BB接口的匿名类的对象

                }

              }

            }  

         注:匿名内部类编译以后,会产生 “外部类名$序号”为名称的 .class文件,序号一  1 到  n   排序,分别表示1到n个 匿名内部类

      

        5。什么是静态的内部类

            就是在内部类的前面加一个static ,一个静态内部类中可以声明static成员,但是非静态内部类中不可以声明静态成员。用的比较少

         

  • 相关阅读:
    B题 hdu 1407 测试你是否和LTC水平一样高
    A题 hdu 1235 统计同成绩学生人数
    hdu 1869 六度分离(最短路floyd)
    hdu 2795 Billboard(线段树+单点更新)
    hdu 1754 I Hate It(线段树)
    hdu 1166敌兵布阵(线段树)
    hdu 1556(线段树之扫描线)
    Contest2073
    中南oj String and Arrays
    51nod 1459 迷宫游戏 (最短路径—Dijkstra算法)
  • 原文地址:https://www.cnblogs.com/qq3111901846/p/6710292.html
Copyright © 2011-2022 走看看