static、final关键字

1、static关键字的使用:

(1)含义:静态的

(2)作用:可以用来修饰属性、方法、代码块、内部类

(3)使用static修饰属性:静态变量(类变量)

① 属性,按是否使用static修饰,又分为:静态属性 和 非静态属性(实例变量)。

实例变量:当创建了类的多个对象时,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中的非静态属性时,不会导致其他对象中相同属性的值的修改。

静态变量:当创建了类的多个对象时,多个对象共享同一个静态变量,当通过某一个对象修改静态变量时,会导致其他对象调用时,是修改过的。

static修饰属性的其他说明:

Ⅰ.静态变量随时类的加载而加载,可以通过“ 类.静态变量 ”的方式进行调用;

Ⅱ.静态变量的加载要早于对象的创建;

Ⅲ.由于类只会加载一次,则静态变量在内存中也只会存在一份,存在方法区的静态域中。

Ⅳ.能否调用:

   类变量   实例变量

类   Yes   No

对象  Yes   Yes

Ⅴ.静态属性举例:System.out; Math.PI;

(4)使用static修饰方法:静态方法

① 静态方法随时类的加载而加载,可以通过“ 类.静态方法 ”的方式进行调用;

② 能否调用:

    静态方法   非静态方法

类    Yes      No

对象   Yes      Yes

③ 静态方法中,只能调用静态的方法或属性;

  非静态方法中,既可以调用非静态的方法或属性,也可以调用静态的方法或属性。

(5)注意点:

① 在静态方法内,不能使用this、super关键字;

② 关于静态属性和静态方法的使用,都从生命周期的角度去理解即可。

(6)什么情况下,属性或方法应该声明为static?

属性是否要声明为static的条件:

Ⅰ.属性是可以被多个对象所共享的,不会随着对象的不同而不同的情况下;

Ⅱ.类中的常量也通常声明为static。

方法是否要声明为static的条件:

Ⅰ.操作静态属性的方法,通常设置为static;

Ⅱ.工具类中的方法,习惯上声明为static的,如:Math、Arrays、Collections等。

2、final关键字:

(1)final可以用来修饰的结构:类、方法、变量。

(2)final可以用来修饰类,表明此类不能被其他类所继承。(如:String类,StringBuffer类)

(3)final可以用来修饰方法,表明此方法不能被重写。(如:Object类中的getClass()方法)

(4)final可以用来修饰变量,此时的“变量”就称为是一个常量。

① final修饰属性时,赋值的位置有:显示初始化时、代码块初始化时、构造器初始化时。

② final修饰局部变量时,尤其是final修饰形参时,表明此形参是一个常量。当调用此方法时,给常量形参赋一个实参。一旦赋值以后,就只能在方法体内使用此形参,但不能进行重新赋值。

特别: static final 用来修饰属性时,称为全局常量。

posted @ 2022-06-22 19:42  萧若風  阅读(28)  评论(0)    收藏  举报