類中屬性的使用

2021-10-22 20:22:12 字數 1078 閱讀 5873

1 相同點:

1.1 定義變數的格式:資料型別 變數名 = 變數值

1.2 先宣告,後使用

1.3 變數都有其對應的作用域

2 不同點

2.1 在類中宣告的位置不同

屬性:直接定義在類的一對{}裡面

區域性變數:宣告在方法內、方法形參、**塊內、構造器形參、構造器內部的變數

2.2 關於許可權修飾符的不同

屬性:可以在宣告屬性時,指明其許可權,使用許可權修飾符

常用的許可權修飾符:private、public、預設、protected

區域性變數:不可以使用許可權修飾符

2.3 預設初始值的情況

屬性:類的屬性,根據其型別,都有預設值初始化

整型(byte、short、int、long):0

浮點型(float、double):0.0

字元型(char):0 (或』\u000』)

布林型(boolean):false

引用資料型別(類、陣列、介面):null

區域性變數:沒有預設初始化值

意味著,我們在呼叫區域性變數之前,一定要顯示賦值。

特別的:形參在呼叫時,我們賦值即可。

2.4 在記憶體中載入的位置

屬性:載入到堆空間(非static)

區域性:載入到棧空間

編譯完源程式後,生成乙個或多個位元組碼檔案。

我們使用jvm中的類載入器和直譯器對生成的位元組碼檔案進行解釋執行。意味著,需要將位元組碼檔案對應的類載入到記憶體中,涉及到記憶體解析。

記憶體結構

《jvm規範》書籍

虛擬機器棧,即為平時提到的棧結構。我們將區域性變數儲存在棧結構中。

堆,我們將new出來的結構載入在堆空間中。補充:物件的屬性(非static)載入在堆空間中。

方法區:類的載入資訊、常量池、靜態域

C 中類的屬性

關於為什麼要使用屬性 用於替代原c 或者其它程式語言中的訪問器和變異器。一直以來很多程式語言都是用訪問器來實現對私有變數操控,比如setspeed 及getspeed 這是兩種方法,以前c 的寫法是 int speed int maxspeed 100 bool setspeed int s els...

java 對類中的屬性使用set get方法的作用

經常看到有朋友提到類似 對類中的屬性使用set get方法的作用?理論的回答當然是封閉性之類的,但是這樣對我們有什麼作用呢?為什麼要這樣設計?我直接使用屬性名來訪問不是更直接,更簡潔明瞭嗎?下面我們就來介紹下為什麼要使用set get方法來代替直接訪問屬性。1.靈活性 比如我們有乙個person類,...

類中屬性和方法的定義和使用

1.1 在類中宣告屬性 語法 修飾符 型別 變數名 修飾符 型別 變數名 值 eg private string name 小明 public int age protected boolean isonline 修飾符 public 公有的,都可以訪問 protected 保護 只有子類能訪問 p...