代码块与属性赋值位置

 1 /**
 2  * 代码块:
 3  *
 4  * 1.代码块的作用:用来初始化类、对象。
 5  * 2.代码块如果有修饰的话,只能使用static。
 6  * 3.分类,静态代码块 vs 非静态代码块。
 7  * 4.静态代码块
 8  * 内部可以有输出语句。
 9  * 随着类的加载而执行,而且只执行一次。
10  * 作用:初始化类的信息。
11  * 如果一个类中定义了多个静态代码块,则按用声明的先后顺序执行。
12  * 静态代码块的执行要优先于非静态代码块的执行。
13  * 静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构。
14  *
15  * 5,非静态代码块
16  *
17  * 1)内部可以有输出语句。
18  * 2)随着对象的创建而执行。
19  * 3)每创建一个对象,就执行一次非静态代码进行进行初始化代码块。
20  * 4)作用,可以在创建对象时,对对象的属性进行初始化。
21  * 5)如果一个类中定义了多个非静态代码块,则按声明的先后顺序执行。
22  * 6)非静态代码块内可以调用静态的属性、静态的方法,或非静态的属性、非静态的方法。
23  *
24  * 6.对属性可以赋值的位置
25  *
26  * 1)默认初始化。
27  * 2)显示初始化。
28  * 3)构造器中初始化。
29  * 4)有了对象以后,可以通过“对象.属性“或“对象.方法“的方式,进行赋值。
30  * 5)在代码块中赋值。
31  *
32  * 执行的先后顺序:1---2/5---3---4
33  */
34 
35 public class Static {
36     //静态代码块,随着类的加载而加载,可以直接被执行
37     static {
38         Static.add();
39         System.out.println("hello world");
40     }
41     //非静态代码块,随着对象的创建而创建,对象被创建时才执行,
42     {
43         System.out.println("你好");
44     }
45          public static    void add(){
46             System.out.println(123);
47         }
48     public static void main(String[] args) {
49         Static.add();
50         Static s=new Static();
51         Static s1=new Static();
52     }
53  }

 

posted @ 2021-09-20 16:40  tiiiiii  阅读(90)  评论(0)    收藏  举报