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

