Java中final和static关键字解析
1.final
1.1概念
1.概述:最终的,最后的
2.用法:
a.修饰一个类
b.修饰一个方法
c.修饰一个局部变量
d.修饰一个成员变量
1.2final修饰类
1.格式:
public final class 类名{}
2.特点:
被final修饰的类不能被继承
1.3final修饰一个方法
1.格式:
修饰符 final 返回值类型 方法名(参数){
方法体
}
2.特点:
被final修饰的方法不能被重写
1.4final修饰局部变量
1.格式:
final 数据类型 变量名 = 值
2.特点:
被final修饰的局部变量,不能被二次赋值
3.final修饰一个对象
地址值不能改变,但是对象中的内容(属性)可变
1.5final修饰成员变量
1.格式:
final 数据类型 变量名 = 值
2.特点:
a.需要我们手动初始化
b.不能被二次赋值
c.如果不手动赋值,那么我们就要用所有的构造为其赋值
2.static
2.1概念
static:
1.概述:静态 关键字
2.特点:
a.被static修饰的成员可以作为共享的数据(凡是根据static成员所在的类创建出来的对象,都可以共享这个数据)
b.static属于类成员 一般的成员变量,成员方法都属于对象
static成员会和类的加载一起进入到内存中
优先于对象存在
c.使用–>类名直接调用–>通用的调用方式
2.2static修饰成员变量
1.格式:
static 数据类型 变量名 = 值
2.使用:
类名直接调用
2.3static修饰方法
1.格式:
修饰符 static 返回值类型 方法名(参数){
方法体
}
2.使用:
类名直接调用
2.4static修饰的成员访问特点(重点)
1.静态的不能直接访问非静态的
原因:静态的数据类,不属于对象 优先于对象存在的
访问:创建对象
2.非静态的能直接访问静态的
同类:
直接访问
new对象
类名直接调用
不同类:
new对象
类名直接调用
3.静态的能直接访问静态的
同类:
直接访问
new对象
类名直接调用
不同类:
new对象
类名直接调用