final
关键字可以使用在类、方法和变量上代码块
一般用来初始化类、对象
一、final关键字
适用范围
:类、方法和变量
- 类
- 意义:表示此类不可以再被其他类所继承
- 用处:表示此类功能已经足够完善,不需要再额外添加新的方法
- 方法
- 意义:该方法不可以再在子类中进行重写
- 用处:表示此方法不希望被重写
- 变量
- 意义 :表示变量的值不可以再发生修改
- 适用赋值的位置:
- 显示初始化:声明变量的时候就直接进行赋值
- 适用代码块进行赋值
- 构造器
二、代码块
形式
:适用一对花括号包裹起来作用
:用来初始化类、对象。是一种新的初始化的方法分类
:非静态代码块和静态代码块
非静态代码块和静态代码块的区别:静态代码块
:- 作用:对静态属性初始化赋值
- 随着类的加载而执行,并且只执行一次
- 只能调用类中的静态结构
- 如果定义了多个,就按照定义的顺序执行
非静态代码块
:- 随着对象的创建而执行
- 每创建一个对象,就会重新执行一次非静态代码块
- 作用:在创建对象的时候,对对象的非静态属性进行初始化
- 可以调用静态结构和非静态结构
- 如果定义了多个,就按照定义的顺序执行
属性赋值的先后顺序
:- 默认初始化
- 显式初始化 / 代码块初始化
- 构造器初始化
- 通过 对象.属性 或者 对象.方法 的方式进行赋值
package test7;
/**
* Created By Intellij IDEA
*
* @author Xinrui Yu
* @date 2021/12/20 16:40 星期一
*/
public class Application {
public static void main(String[] args) {
System.out.println(Fish.getSum());
Fish fish = new Fish();
System.out.println(Fish.getSum());
}
}
class Fish{
private String name;
public static int sum;
static{
System.out.println("静态代码块的调用");
sum = 10;
}
{
System.out.println("非静态代码块的调用");
name = "金鱼";
sum = 11;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static int getSum() {
return sum;
}
public static void setSum(int sum) {
Fish.sum = sum;
}
}