java中static和final修饰符作用

时间:2022-06-20 17:14:01
static 修饰符 作用(静态的只能访问静态的) 1.修饰变量:-----被static修饰叫做静态变量或者是类变量; 没有被修饰的叫做实例变量 每个对象都共有的属性就可以设置为static,被修饰的成员被所有的对象共享,且可以直接用 类名.X静态成员 的方式调用 static优先于对象存在,因为static成员随类的加载就已经存在了 2.修饰方法 静态方法只能访问静态成员(非静态既可以访问静态也可以访问非静态) 静态方法中不可以使用this或者super关键字(对象不存在) 因为静态方法是优先于对象存在,而且可以直接类名.调用 3.修饰代码块:静态代码块 随着类的加载而运行,而且只运行一次 作用:用于类的初始化 static代码块是类加载时,初始化自动执行的。如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次 当类中的变量全部是静态的时候才用静态代码块去初始化变量
final修饰 final      在Java中声明属性、方法和类时,可使用关键字final来修饰。      final变量即为常量,只能赋值一次;      final方法不能被子类重写;      final类不能被继承。 初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。     一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变 在java中,普通变量系统是自动初始化的,数值变量自动初始化为0,其余类型变量自动初始化为空。但是final类型的变量必须显示初始化,且初始化的方法必须是在申明时或者在构造方法中直接赋值,而不能通过调用函数赋值。