Java教程

代码块

本文主要是介绍代码块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

/**
 * 类的成员之四:代码块(或初始化块)
 * 1.代码块的作用:用来初始化类、对象
 * 2.代码块如果有修饰的话,只能用static。
 * 3.分类:静态代码块 vs 非静态代码块
 *
 * 4.静态代码块
 *      >内部可以有输出语句
 *      >随着类的加载而执行,而且只执行一次
 *      >作用:初始化类的信息
 *      >如果声明了多个静态代码块,则按声明的先后顺序执行。
 *      >静态代码块比非静态代码块先执行。
 *      >静态代码块内只能调用静态属性或方法。
 *
 * 5.非静态代码块
 *      >内部可以有输出语句
 *      >随着对象的创建而执行,而且每创建一个对象就执行一次非静态代码块。
 *      >作用:可以在创建对象时,对对象的属性等进行初始化
 *      >如果声明了多个静态代码块,则按声明的先后顺序执行。
 *      >非静态代码块内可以调用静态属性或方法或非静态属性、非静态方法。
 *
 *
 */

 1 package com.fu.block;
 2 
 3 
 4 public class BlockTest {
 5     public static void main(String[] args) {
 6         String desc = Person.desc;
 7         Person p1 = new Person();
 8         Person p2 = new Person();
 9     }
10 }
11 
12 class Person{
13     //属性
14     String name;
15     int age;
16     static String desc = "我是一个人";
17 
18     //构造器
19     public Person(){
20 
21     }
22     public Person(String name,int age){
23         this.name = name;
24         this.age = age;
25     }
26 
27     //static代码块
28     static{
29         System.out.println("hello");
30     }
31     //非static代码块
32     {
33         System.out.println("hi");
34     }
35 
36     //方法
37     public void eat(){
38         System.out.println("吃饭");
39     }
40 
41     @Override
42     public String toString() {
43         return "Person{" +
44                 "name='" + name + '\'' +
45                 ", age=" + age +
46                 '}';
47     }
48     public static void info(){
49         System.out.println("我是一个快乐的人");
50     }
51 }

 

对属性可以赋值的位置:
 1 package com.fu.block;
 2 
 3 /**
 4  * 对属性可以赋值的位置:
 5  *  ① 默认初始化
 6  *  ② 显示初始化
 7  *  ③ 构造器中初始化
 8  *  ④ 有了对象以后,可以通过 “对象.属性” 或 “对象.方法” 的方式,进行赋值
 9  *  ⑤ 在代码块中赋值
10  *
11  *  执行的先后顺序:① - ② / ⑤ - ③ - ④
12  *  ② 和 ⑤ 谁在前面就先执行谁
13  */
14 public class OrderTest {
15     public static void main(String[] args) {
16         Order order = new Order();
17         System.out.println(order.orderId);
18     }
19 }
20 
21 class Order{
22     int orderId = 3;
23     {
24         orderId = 4;
25     }
26 }

 

 
这篇关于代码块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!