javafinal关键字,权限修饰符,内部类

1 final关键字的用法  含义:最终的不可变

可以用来修饰类 public  final class A{}  不能有子类

可以用来修饰成员方法   返回之前加final  该方法不能由子类覆盖重写

可以用来修饰成员变量     需要手动赋值,直接赋值或者构造赋值(必须赋值)

可以用来修饰局部变量     只能赋值一次,基本数据类型为数值不可变,对于引用类型地址值不可变

2 权限修饰符

                            public            protected          (default)         private

同一个类                       是            是                   是                         是

同一个包                       是            是                   是                      否

不同包子类                   是            是                     否                        否

不同包非子类               是           否                        否                      否

 3 内部类

什么是内部类:一个类中包含另一个类

分类:

成员内部类

局部内部类(匿名内部类)

4成员内部类的使用

①在外部类方法中创建内部类对象进行使用

②直接使用          外部类.内部类     名 = new 外部类().new 内部类();

5 内部类变量的访问

 1 public class Outer{
 2      private int num=10; 
 3      public class Inter{
 4            private int num=20;
 5            pubilc void method(){
 6                        int num=30;
 7                System.out.println(num);   //30
 8                System.out.println(this.num);    //20
 9                System.out.println(Outer.this.
num); //10 10 } 11 } 12 }

6 局部内部类

直接在方法中定义,直接在方法中使用

7 关于局部内部类访问局部变量的问题 !

局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量必须是【有效final的】。

备注:从Java 8+开始,只要局部变量事实不变,那么final关键字可以省略。

8匿名内部类

如果子类或者实现类只需要用一次,就可以使用匿名内部类

格式 : 

接口名称 对象名 = new 接口名称() {
// 覆盖重写所有抽象方法
};

posted @ 2021-03-28 10:25  jmdm  阅读(80)  评论(0)    收藏  举报