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

Java 對象全解析:從概念認知到內存存儲機制

     編輯:Java 相關知識

對象是面向對象技術的核心,「萬事萬物皆對象」不僅是經典語句,更是認知世界的根本方式。無論是現實中的一個人、數據庫中的一張表,在面向對象視角裡,皆為對象。

什麼是對象?雙重視角的統一

認知視角:化繁為簡

面向對象提供一種思考方式——將複雜結構視為整體。認識電腦時,先拆解為顯示器、硬盤、CPU 等對象,再逐個攻克,大幅降低認知複雜度。

設計視角:模組化解耦

同理,設計電腦時將其拆分為獨立模組分別設計,再組裝成系統。這種「分而治之」的思想,使面向對象在程序設計中廣泛應用,本質是對現實認知規律的昇華,並非計算機領域專屬。

語法視角:復合變量

在 Java 語法層面,對象是復合數據類型的變量(數組、類、接口),內部封裝屬性(數據)與方法(功能)。可類比 C 語言的結構體變量,每個對象存儲類中對應屬性的具體數值。

對象語法四大核心

以 Box 類為例:

public class Box {
    int length, width, height;
    public Box() { length = width = height = 10; }
    public Box(int l, int w, int h) { length = l; width = w; height = h; }
    public int volume() { return length * width * height; }
}

8.3.2.1 對象聲明

Box b;           // 聲明 Box 類型對象 b,值為 null,不佔內存
Box b1, b2;      // 可一次聲明多個

要求數據類型為復合類型,基本類型聲明的僅稱變量。

8.3.2.2 對象初始化

通過 new 調用構造方法,在堆內存申請空間並初始化屬性:

Box b = new Box();        // 無參構造,屬性均為 10
Box b1; b1 = new Box(2,3,4); // 有參構造,長寬高分別為 2、3、4
  • 構造方法必須在類中聲明過
  • 參數列表必須匹配
  • 構造方法可被隱藏,改用工廠方法等方式創建對象

8.3.2.3 引用屬性

b.width = 5;  // 語法:對象名.屬性名,表達式類型與屬性聲明類型一致

最佳實踐:實際開發中避免直接訪問屬性,改用 getter/setter 方法配合訪問控制符,實現封裝。

8.3.2.4 引用方法(消息傳遞)

int v = b.volume();  // 語法:對象名.方法名(參數),實現功能調用與信息傳遞

對象間通過方法調用關聯,構建有機系統,滿足業務需求。

對象內存存儲機制

Java 運行時內存分兩大區域:

  • 棧內存:存儲基本數據類型變量與對象引用(地址)
  • 堆內存:存儲對象實際內容(屬性值)

對象存儲包含兩部分:對象內容(堆中)與 對象起始地址(棧中引用變量持有)。這解釋了為何對象屬於引用類型,賦值傳遞的是地址而非內容副本。

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