面向物件之建立物件記憶體分析及簡單小結
阿新 • • 發佈:2022-05-27
java面向物件
1.建立物件記憶體分析
-
記憶體中有2個區域,一個是堆一個是棧,棧中儲存的是一些引用和main方法,堆中有個特殊的區叫方法區,存放具體建立物件的一些屬性值和方法。
- 方法區中載入了類,存放了main方法,常量池中放了一些要賦予的常量
- 方法區中有一塊地方是靜態方法區,static:和類一起載入
-
棧中儲存的物件名是一個指向堆的記憶體地址,通過物件名.屬性值和物件.方法名來對屬性進行修改或者對方法進行呼叫
-
靜態方法和變數隨著類一起載入。可以隨時呼叫
-
建立物件記憶體圖
1.1 記憶體圖程式碼演示:
package oopdemo01; import oopdemo01.demo03.Pet; public class Application { public static void main(String[] args) { Pet dog = new Pet(); dog.name="旺財"; dog.age=5; dog.shot(); Pet cat = new Pet(); cat.name="咪咪"; cat.age=3; cat.shot(); } }
package oopdemo01.demo03;
public class Pet {
public static String name;
public static int age;
public void shot(){
System.out.println(this.name+"它叫了");
}
}
執行結果
旺財它叫了
咪咪它叫了
2.簡單小結類與物件
-
1.類與物件:
- 類是一個模板:抽象的。
- 物件是一個具體的例項
-
2.方法:
- 方法定義、呼叫
-
3.物件的引用
-
引用型別、基本型別(8)
-
物件是通過引用來操作的:棧---->堆
-
-
4.屬性:欄位 Field (成員變數)
- 預設初始化:
- 數字: 0 0.0
- char: u0000
- boolean:false
- 引用:null
- 修飾符 屬性型別 屬性名=屬性值!
-
5.象的建立和使用
- 必須使用new關鍵字建立物件, 構造器 Person zaodian=new Person();
- 物件的屬性 zaodian.name
- 物件的方法 zaodian.sleep()
-
6.類:
- 靜態的屬性 屬性
- 動態的行為 方法
————————————————————————————————————————————————————————————————————