Java類與物件--學習筆記
阿新 • • 發佈:2018-12-20
在之前的的學習中從來沒有系統的做過筆記,這一次跟著李興華老師一起學習Java,我被他上課的風格所吸引,所以我決定將我所學到的內容系統的記錄下來,實際上也是在李老師的課上所記錄的學習筆記。這是我第一次寫部落格,有什麼不足之處還望各位讀者指正。
JAVA-類與物件
類與物件定義
程式碼示例:Person類的定義
class Person{ //定義類中的屬性 String name; int age; // public void show(){ System.out.println("姓名:" + name + ";年齡:" + age); } }
類本身不能使用,只有通過物件才可以使用。類(引用資料型別) 引用資料型別在使用之前必須開闢空間,而基本資料型別可以直接賦值。
- 物件的定義方法:
-
- 宣告例項化物件: 類名稱 物件名稱 = new 類名稱() ;
-
- 分步進行:
- 宣告物件: 類名稱 物件名稱 = null ;
- 例項化物件: 物件名稱 = new 類名稱() ;
- 分步進行:
程式碼示例:Person類的定義
class Person{ //定義類中的屬性 String name; int age; // public void show(){ System.out.println("姓名:" + name + ";年齡:" + age\n); } } public class TestDemo{ public static void main(String[] args) { //直接宣告例項化物件: Person heshuaixin = new Person(); heshuaixin.name = "張三"; heshuaixin.age = 19; heshuaixin.show(); //分步進行: Person LuXiAn = null; LuXiAn = new Person(); LuXiAn.name = "路西安"; LuXiAn.age = “20"; LuXiAn.show(); } }
物件記憶體分析
- 堆記憶體空間:儲存真正的資料;堆記憶體儲存的是物件的屬性資訊;
- 棧記憶體空間:儲存的堆記憶體的地址,堆記憶體的操作權,可以理解為儲存的是物件名稱;
程式碼示例:觀察程式
class Person{ //定義一個類,類名稱的每個首字母單詞要大寫 String name; int age; public void show(){ System.out.println("name:" + name + ",age:" + age + "."); } } public class TestDemo{ public static void main(String[] args) { Person per1 = new Person(); //例項化物件 per1.name = "LuXiAn"; //物件.屬性 = 內容 per1.age = 18; //物件.屬性 = 內容 per1.show(); } }
記憶體分析:
引用傳遞初步
- 一塊堆記憶體可以被多個棧記憶體所指向。
程式碼示例:觀察程式
class Person{
String name;
int age;
public void show(){
System.out.println("name:" + name + ",age:" + age + ".");
}
}
public class TestDemo{
public static void main(String[] args) {
Person per1 = new Person(); //例項化物件
Person per2 = new Person(); //例項化物件
per1.name = "ZhangSan";
per1.age = 19;
per2.name = "LuXiAn";
per2.age = 21;
per2 = per1; //引用傳遞
per1.show(); //通過物件呼叫類中的方法
}
}
記憶體分析: 垃圾空間: 沒有任何棧記憶體指向的堆記憶體空間,所有的垃圾檔案將不定期被JAVA中的垃圾收集器(GC,Garbage Collecter)進行回收以實現空間的釋放。雖然提供了GC機制,但是開發中依舊務必控制好物件的數量。
下一次分享的內容會是類與物件的進一步分析,因為剛開始的緣故,難度會比較低,到後面會逐步增加難度的。 希望本文會對讀者有一些提升,文中如果有錯誤的地方還望指正。