首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 類與對象深度解析:構造方法、實例化流程與棧堆內存模型

     編輯:Java 綜合教學

類結構定義

public class Dog {
    String name;   // 實例變量
    int age;

    // 無參構造
    public Dog() { System.out.println("無參構造"); }

    // 有參構造
    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
        System.out.println("有參構造");
    }

    void bark() { System.out.println("汪汪"); }
    void hungry() { System.out.println("主人,我餓了"); }
}

對象創建內存圖解

內存模型

  • 棧:存局部引用變量 myDog,生命周期隨方法結束銷毀。
  • 堆:存 new Dog() 創建的對象實體(屬性值、方法指針),由 GC 管理。
  • 關聯:賦值語句將堆地址寫入棧引用。

構造方法細節

  • 名稱與類同,無返回值(連 void 都不能寫)。
  • 未顯式定義時編譯器自動生成無參構造;一旦定義任意構造,默認構造消失。
  • 可重載,this(...) 調用同類其他構造必須首行。

訪問成員

Dog myDog = new Dog("花花", 3);
System.out.println(myDog.name);  // 訪問屬性
myDog.bark();                    // 訪問方法

this 關鍵字三大用法

  1. this.field:區分同名參數。
  2. this.method():調用實例方法。
  3. this(...):構造器鏈調用。

運行結果

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved