Java中 final 和 static 用法

来源:互联网 发布:mac地址修改软件下载 编辑:程序博客网 时间:2024/06/04 18:43
final用法
用来定义变量,这个变量就回变成常量。
加了final关键字的类代表不能其他类继承。——和关键字abstract相互冲突
方法前面加了final关键字,就这不能被子类重写
属性加final变成终极常量,不能被修改。——加了final的属性必须给一个初值,不会再有默认的初始值。且这值不能被修改。
————————————————————————————————————————————————————————————————————————————————————————————————
static
可以用来修饰属性,方法和代码块
static修饰的属性和方法成为类属性(类变量),类方法。
父类和子类都有static变量,初始化顺序:
1.父类static变量 静态代码块 普通属性 代码块 构造

初始化顺序:
父类的类属性——父类静态代码块——子类的类属性——子类静态代码块——父类属性——父类代码块——父类构造——子类属性——子类代码块——子类构造
(先加载静态,先父类后子类)

使用方式 1 通过对象点类属性
2 类名.类属性 (推荐使用)
区别 :
不需要创建对象就可以使用,普通属性必须要创建对象
类属性属于全局,所有的对象公用一个属性值,值为最后一个对象对其操作。普通属性每个对象属性的是特定的,改变一个对象属性值,另一个不会发生变化。
static final A 全局都可一 调用,类名调用
类方法 不需要创建对象就可以使用,也有弊端,这种情况下,就算方法不被调用,也会被运行,静态的不会被删除,一直占用内存,只用在内存被消耗完时才会被删除。

静态方法:在不使用勒种普通属性的前提下,才能使用
静态方法与非静态方法之间的相互调用。静态方法不能直接调用非静态方法,但是,非静态方法可以直接调用静态方法和普通方法。
静态方法调用非静态方法:需要创建对象。通过对象.方法()来调用.

原创粉丝点击