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类型的变量必须显示初始化,且初始化的方法必须是在申明时或者在构造方法中直接赋值,而不能通过调用函数赋值。
相关文章
- C++和Java中的静态Static用法
- JAVA中instanceof的作用和用法
- C#.NET学习笔记---C#中类的修饰符,this关键字和static关键字
- 【Java技术专题】「原理专题」深入分析Java中finalize方法的作用和底层原理
- 【Java技术专题】「原理专题」深入分析Java中finalize方法的作用和底层原理
- Java中Class和单例类的作用与类成员的理解
- java中的this和super的作用和异同和C++中调用父类的构造函数
- Java中不定项参数(可变参数)的作用和使用方式
- java中static和final修饰符
- Java中final与 static final 修饰的常量的区别