final关键字和static关键字

final关键字:最终态——修饰成员变量,成员方法,类

final修饰变量:

基本类型变量:该变量为常量不能被赋值

引用类型变量:该地址不能被概变

地址不能被概变的原因:
final Student s = new Student();
s.age = 100;
//输出100
//s是个地址,final挂在了s头上,这个地址不能变了,但是地址指向的age内容可以变。
如果:
s = new Student();//则报错,s这个地址已经被final修饰不可以变化

final修饰自定义常量:

字面值常量

int a = 10;
a = 20;
a变了是个变量,10没变,10是字面值常量
3.1415926比较复杂,是字面值常量不好记。
能不能给这个常量起个名字?
double PI = 3.1415926,但是PI可以随意被更改,下次使用可能已经被更改,因此

自定义常量

final double PI = 3.1415926;
这个PI就是自定义常量了,永久保存,永远变不了。

final修饰方法:该方法最终方法不可被重写

final修饰类:该类为最终类,不能被继承

static:静态——修饰成员变量,成员方法

被类的所有对象共享。

静态变量和静态方法:


建议通过类名来访问,方便记忆它是跟着类走的

静态成员方法的使用注意事项:

静态成员方法内只能访问静态成员(静态成员变量和静态的成员方法):
静态不能直接访问非静态的,因为静态的在创建对象之前就初始化完毕,但是此时非静态的成员还未进行初始化。

静态成员的使用注意事项:

静态成员推荐使用的方式就是————类名.静态成员名称。
对象名称.静态成员名称是可以的,
不管是否是静态成员,都可以采用对象调用。

posted @ 2019-11-11 19:48  卯毛  阅读(577)  评论(0编辑  收藏  举报