一、代码块
1.final
final
修饰方法:表明该方法是最终方法,不能被重写
修饰类:表明该类是最终类,不能被继承
修饰变量:常量,只能被赋值一次
修饰基本数据类型:记录的值不能发生改变(常量)
修饰引用数据类型:记录的地址值不能发生改变,内部的属性值可以改变好处:增加代码可读性
private static final String ADD_STUDENR = "1";
2.局部代码块
局部代码块:变量只能在所属大括号内存在,节省空间(常规)
3.构造代码块
构造代码块:{(不用)
1.写在成员位置的代码块
2.作用:可以把多个构造方法中重复的代码块抽取出来
3.执行时机:创建本类对象的时候会先执行构造代码块再执行构造方法
}
形式:{}
public class CodeBlockDemo {
// 构造代码块
{
System.out.println("实例初始化代码块在每次创建对象时执行。");
}
// 构造方法
public CodeBlockDemo() {
System.out.println("这是构造方法。");
}
// 局部代码块
public void display() {
// 方法中的代码块
{
System.out.println("这是方法中的代码块。");
}
System.out.println("这是方法中的其他代码。");
}
public static void main(String[] args) {
// 创建对象
CodeBlockDemo demo = new CodeBlockDemo();
// 调用方法
demo.display();
}
}
4.静态代码块
静态代码块:(重点)
随着类的加载而加载,并且自动触发,只执行一次
使用场景:类加载,数据初始化如果想要做数据初始化,就用静态代码块
例如:学生管理系统的信息录入
import java.util.*;
class User
{
String name;
String id;
int age;
public User(String name,String id,int age)
{
this.name=name;
this.id=id;
this.age=age;
}
}
public class App {
//静态代码块录入信息,更安全,不会被反复调用
static ArrayList<User> list=new ArrayList<>();
static{
list.add(new User("张三","123",12));
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
}
}
//public class App{
// public static void main(String[] args) {
// Scanner in=new Scanner(System.in);
// ArrayList<User> lis