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;}}

