Java之初始化与清理4.1.2

阅读更多

package com.javaSE07.unit;
/*初始化顺序
1.先静态后非静态    ->先初始化静态类型的成员变量后初始化非静态的成员变量,静态成员只初始化一次
2.先声明后赋值        ->每个成员变量声明时获得默认值,然后执行等号后的赋值
3.先属性后方法(构造方法)    ->先执行定义属性的初始化,然后执行构造方法的初始化
4.先父类后子类        ->先初始化父类的成员变量,然后初始化子类的成员变量
*/
public class Student {
    // 成员变量
    private String name="张三";
    private int age=getI();
    //private int age;
    int i;
    int j=k;        //静态成员变量只初始化一次
    static int k = 100;
    //先运行静态的方法
    static {
        System.out.println("静态代码块");
    }

    {
        System.out.println("非静态代码块");
    }
    
    {
        System.out.println("非静态代码块1");
    }
    static{
        System.out.println("静态代码块");
    }
    // 构造方法

    public Student(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    public Student() {
        super();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getI() {
        return i;
    }

    public void setI(int i) {
        this.i = i;
    }

    public int getJ() {
        return j;
    }

    public void setJ(int j) {
        this.j = j;
    }

    public static int getK() {
        return k;
    }

    public static void setK(int k) {
        Student.k = k;
    }
    

}

package com.javaSE07.unit;

public class StudentTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Student stu1 = new Student();
        System.out.println("name="+stu1.getName()+",age="+stu1.getAge());
        System.out.println("i="+stu1.i+",j="+stu1.j+",k="+stu1.k);
    }

}
 

转载于:https://my.oschina.net/Watto/blog/873285

你可能感兴趣的:(Java之初始化与清理4.1.2)