java成员变量的初始化_Java成员变量初始化过程
import java.util.*;
public class Main
{
public static void main(String[] args){
Student s = new Student(5);
s.show();
}
}
class Person{
public Person(){
System.out.println("父初始化");
show();
}
public void show(){
System.out.println("父show");
}
}
class Student extends Person{
public int age=10;
public Student(int age){
super();
//編譯后this.age=10插入到這里;
show();
this.age=age;
}
@Override
public void show()
{
System.out.println("子show年齡是"+age);
}
}
打印:
父初始化
子show年齡是0
子show年齡是10
子show年齡是5
變量的初始化順序:
1.當類第一次使用時,JVM就會加載該類,如果該類存在父類,那么就先加載父類,這是一個遞歸過程,直到Object為止.
在類加載中,首先進行靜態成員變量按照默認值進行初始化,
然后按照在類中聲明的順序執行靜態代碼塊和靜態變量的顯示初始化.
這個過程從父類到子類,并且只會執行一次!!!
2.當父類與子類的靜態代碼初始化完成后,如果創建了類的對象,
在初始化子類前,會先對其父類的實例變量進行默認初始化,
然后按照在類中的聲明順序來執行代碼塊與實例變量的顯示初始化,
最后調用父類的構造函數,這也是一個遞歸過程,直到Object類為止.
(這個過程在每次創建對象時,都會執行!!!)
總結
以上是生活随笔為你收集整理的java成员变量的初始化_Java成员变量初始化过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python元编程运用_Python 中
- 下一篇: java desktop mailto,