12.final、权限、内部类

final关键字(太监类)

常用四种用法:1、成员变量  2、方法 

3、类        4、局部变量

1.修饰方法:    final class 类名 {        }

2.修饰方法:    修饰符 final 返回值类型 方法名(参数列表){//   方法体    }

3.修饰变量:     final String USERNAME = "张三"被修饰变量需用大写。

4.局部变量引用类型      final User u = new User();

 

final与abstract两个关键字冲突,不能同时使用。

需要注意的是:

当基本类型的数据来说,不能变的是【数据值】;引用类型的数据类型则是地址值:array =new int3】(错误写法)。

stu=new Student();(错误写法)

权限修饰符

分清一个四个修饰符的权限大小

                                         public        protected       default(空的)      private

同一类中                                  √              √                √                  √

同一包中(子类与无关类)            √              √                √

不同包的子类                           √              √

不同包中的无关类                    

建议

成员变量使用private ,隐藏细节。

构造方法使用public ,方便创建对象。

成员方法使用public ,方便调用方法。

 

内部类(夹心类):

1.成员内部类

class 外部类 {      class 内部类{}           }

访问特点:内部类可以直接访问外部类的成员,包括私有成员。

外部类要访问内部类的成员,必须要建立内部类的对象。

创建内部类格式:

外部类名.内部类名 对象名 = new 外部类型().new 内部类型()

 

2.局部内部类

包含关系,一个属性的组成部分。

格式:一个外部类里一个内部类,一个内部类里面一个内部类:

外部类.This.成员变量(里面的想要访问外面的)

外面想要访问里面的:如上

 

总结一下各种class定义的时候,权限修饰符的用法:

凡是局部的,都不写权限修饰符!

 

因为局部变量和内部类创建的对象生命周期不一样。当然跟线程有关系,这个以后再说。

3.匿名内部类

前堤:匿名内部类必须继承一个父类或者实现一个父接口。

格式:

new 父类名或者接口名(){

// 方法重写

@Override

public void method() {

// 执行语句

}

};

什么是匿名对象?

匿名内部类的注意:

综合例子:一个类可以作为一个属性。

引用类型用法总结

1.class作为成员变量

1.interface作为成员变量

 

 

 

Interface作为方法参数和返回值类型

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_40406929/article/details/81175664
今日推荐