• java 代码块


    代码块(初始化块)

    代码块的作用:用来初始化类或者对象
    代码块如果有修饰,只能使用static
    分类:静态代码块 vs 非静态代码块

    内部都可以有输出语句

    静态代码块

    • 随着类的加载而执行,只执行一次
    • 对类中静态属性进行赋值
    • 如果声明了多个静态代码块,按声明的先后执行
    • 静态代码块总是先于非静态代码块执行

    代码块

    • 随着对象的调用而执行,每new一个对象执行一次
    • 作用:可以在创建对象时,对对象的属性等进行初始化
    • 如果声明了多个代码块,按声明的先后执行

    对属性可以赋值的位置

    1.默认初始化
    2.显示初始化 / 在代码块中赋值
    3.构造器中初始化
    4.有了对象以后,对对象.属性或者对象.方法的方式进行赋值

    执行先后顺序 1 - 2 - 3 - 4
    2中的还谁先写谁后写

    同样的,静态代码块内只能调静态属性或者方法,代码块内静态和非静态都能调用

    package block;

    public class blockTest {
    public static void main(String[] args) {
    String desc = Person.desc;

    	Person p1 = new Person();
    	Person p2 = new Person();
    	System.out.println(p1.age);
    	
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    }

    class Person{
    // 属性
    String name;
    int age;
    static String desc = “我是一个人”;
    // 构造器
    public Person(){

    }
    
    public Person(String name,int age){
    	this.name = name;
    	this.age = age;
    }
    // 静态代码块
    static{
    	System.out.println("hello,static block");
    	
    	
    }
    
    // 非静态代码块
    {
    	System.out.println("hello,block");
    	age = 1;
    }
    
    
    // 方法
    public void eat(){
    	System.out.println("吃饭");
    }
    
    @Override
    public String toString() {
    	return "Person [name=" + name + ", age=" + age + "]";
    }
    
    
    public static void info(){
    	System.out.println("我是一个快乐的人");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    }

  • 相关阅读:
    Python学习 day03(注意事项)
    Aapche POI java excel 操作工具包入门
    [Spring Cloud] Eureka Server安装
    字符串——子串查找(kmp)
    vue-2
    博途1200/1500 ALT指令
    基于MATLAB和k-means算法实现的图像分割
    【Android】Fragment使用
    DM8:生成DM AWR报告
    【FreeRTOS】【STM32】06 FreeRTOS的使用-动态创建多任务 FreeRTOS 的启动流程
  • 原文地址:https://blog.csdn.net/abc1234564546/article/details/127583299