Java内容梳理(9)static关键字和final关键字

static

(1)被static修饰的内部类,方法,属性有什么特点?

1、static修饰的属性和方法属于类级别

2、static修饰的属性:称静态属性/类属性

访问方式:

         1. 通过对象去访问: 对象.静态属性 (不推荐使用)

         2. 通过类去访问: 类名.静态属性

特点:所有对象共享同一份静态属性

3、static修饰方法:称静态方法/类方法

访问方式:与静态属性一致

特点:

1. 静态方法中只能使用静态的属性和方法

(因为类加载之后,静态成员就会加载出来,而此时对象不一定存在,所以静态方法中不能有实例属性和实例方法)

2. 静态方法不具备多态性, 执行哪个方法看引用类型

Person p = new Student();//父类引用指向子类对象

p.say();//say()是静态方法,是类一个级别的,不具备多态性,看的是Person类中的say()方法

3、static修饰的内部类,只能通过类名.的方式去访问,起到保护作用

(2)静态初始代码块和实例代码块

1、静态代码块:

static{

//code

}

2、实例代码块:

{ .... }

3、静态成员的创建或执行时机:

类加载时被执行一次

静态代码块与静态成员执行的顺序, 看代码定义的先后位置

final

(3)被final修饰的类,方法,属性有什么特点?

1、final修饰类时:

最终类;

特点:不能被继承

2、final修饰属性时:

常量;

特点:常量必须初始化:

(1)定义常量时进行初始化

(2)在实例代码块中初始化

(3)在构造方法中初始化

注意:3者只能选其一,常量一旦初始化后值不能被改变

3、final修饰方法时

最终方法;

特点:不能被重写

4、final修饰局部变量时:

常量;

常量一旦初始化后值不能被改变

(4)static和final连用修饰属性

final关键字通常和static关键联用一起来修饰一个属性: 静态常量

静态常量:代替程序中需要使用到的一些固定选项值(代号),从而提升程序的可读性

猜你喜欢

转载自blog.csdn.net/Carl_changxin/article/details/82728990
今日推荐