10-21動手動腦
zi定義類
BoxAndUnbox。Java
Hello。Java
InitializeBlockClass。Java
即只進行成員變數的定義,不進行主動的初始化操作,由編譯器為成員變數賦一個預設值。
對於基本型別,有各自不同的預設值如int、char、short等為0,boolean為false,對於物件,預設值為null。預設初始化主要是為了保證初始化過程一定會得到執行,只發生在成員變數身上,對於區域性變數,不存在這種機制。
MyPackageClass。Java
ObjectEquals
StrangeIntegerBehavior 。Java
對於兩個非
非new生成的Integer變數和new Integer()生成的變數比較時,結果為false。(因為非new生成的Integer變數指向的是java常量池中的物件,而new Integer()生成的變數指向堆中新建的物件,兩者在記憶體中的地址不同)
TestStaticInitializeBlock。Java
一個類中
類內容(靜態變數、靜態初始化塊) => 例項內容(變數、初始化塊、構造器)
兩個繼承類中
父類的(靜態變數、靜態初始化塊)=> 子類的(靜態變數、靜態初始化塊)=> 父類的(變數、初始化塊、構造器)=> 子類的(變數、初始化塊、構造器)
Test2
靜態方法中訪問類實力成員
package main;
public class Circle {
private double radius = 1.0;
double getAre() {
return
}
public static void main(String[] args) {
Circle myCircle = new Circle();
System.out.println("radius is " + myCircle.radius); //radius不是靜態的,靜態方法可以通過類物件呼叫非靜態成員變數、非靜態方法
}
}
package main; public class Circle { private double radius = 1.0; double getAre() { return radius * radius * Math.PI; } public static void main(String[] args) { Circle myCircle = new Circle(); System.out.println("radius is " + myCircle.radius); //radius不是靜態的,靜態方法可以通過類物件呼叫非靜態成員變數、非靜態方法 } }