面向物件02-類與物件
阿新 • • 發佈:2022-02-17
面向物件的基本元素
類(Class):對一類事物的描述,是抽象的,概念上的定義
物件(Object):實際存在的該類事物的每個個體,因而也稱為例項(instance)
- 對類進行設計,就是對類的成員的設計
類及類的成員
屬性 : 對應類中的成員變數
- 屬性(Field) = 成員變數 = 域 = 欄位
行為 : 對應類中的成員方法
- 方法(Method) = 成員方法 = 函式
類與物件的使用
一. 建立類:設計類的成員
//類的設計 class Person { //屬性 String name; int age = 1; boolean isMale; //方法 public void eat() { System.out.println("人可以吃飯"); } public void sleep() { System.out.println("人可以睡覺"); } public void talk(String language) { System.out.println("人可以說話,使用的是" + language); } }
二. 建立類的物件:類的例項化
-
如果建立了一個類的多個物件,則每個物件都獨立的擁有一套類
意味著:如果我們修改一個物件的屬性a,則不影響另外一個物件屬性a的值
三. 通過“物件.屬性”或“物件.方法”呼叫物件的結構
//測試類 public class PersonTest { public static void main(String[] args) { //類的例項化:建立Person類的物件 Person p1 = new Person(); //呼叫物件的結構:屬性和方法 //呼叫屬性:“物件.屬性” p1.name = "Tom"; p1.isMale = true; System.out.println(p1.name); System.out.println(p1.isMale); //呼叫方法:“物件.方法” p1.eat(); p1.sleep(); p1.talk("Chinese"); } }
**其他. **
public static void main(String[] args) {
//將p1變數儲存的物件地址值賦給p3,導致p1和p3指向了堆空間中的同一個物件實體
Person p3 = new Person();
System.out.println(p3.name);//結果為Tom
p3.age = 10;
System.out.println(p1.age);//10
}
物件的記憶體解析
-
堆(Heap)
存放物件例項(所有的物件例項以及陣列都要在堆上分配)
-
棧(Stack)
儲存區域性變數(存放各種 基本資料型別 物件引用,不等同於物件本身,是物件在堆中存放的首地址
-
方法區(Method Area)
儲存被虛擬機器載入的類資訊、常量、靜態變數、即時編譯器編譯後的程式碼等