學習筆記 Java構造器和static關鍵字

2021-06-27 12:16:22 字數 2907 閱讀 4322

1. 構造器的名字和類名相同。

2. 不用定義返回值型別。

3. 不可以寫return語句。

給物件進行初始化。

1. 預設構造器的特點。

2. 多個構造器是以過載的形式存在的。

3. 註解類不可以有構造器。

4. 介面不可以有構造器。

this代表其所在方法所屬物件的引用,super代表其所在方法所屬物件的父類的引用。

換言之:this指向本類物件的引用,super指向父類物件的引用。

當在函式內需要用到呼叫該函式的物件時,就用this;需要用到呼叫該方法的物件的父類物件時,就用super。

this 一般用於區分區域性變數和成員變數同名的情況。

this/super 用於子類父類建構函式間互相呼叫

this()/super() 函式必須在建構函式的第一行,且有且僅有乙個。

public

class

person

public

person

()

public

string

getname

()

public

void

setname

(string

name

)

public

intgetage

()

public

void

setage

(int

age)

}

用於修飾成員(例項域和方法)

問題:多個物件中出現共同的資料,耗費記憶體空間

作用:可以使用static修飾成員,表示該成員占用方法區(共享區,資料區),並且每個物件都可以訪問該成員資料。

呼叫:多一種呼叫方式,可以直接被類名呼叫:類名.靜態成員(當具有許可權時)。

1. 隨著類的載入而載入,隨著類的釋放而釋放。

2. 優先於物件存在。

3. 被所有物件所共享。

4. 可以直接被類名呼叫。

1. 存放位置。

靜態域隨著類的載入而存在於方法區中。例項域隨著物件的建立而存在堆區中。

2. 生命週期。

靜態域生命週期最長。

1. 靜態方法不能訪問非靜態成員。

2. 靜態方法中不可以使用this,super關鍵字。

3. 主函式是靜態的。

1. 物件共享資料,使用靜態變數。

2. 不需要訪問非靜態成員的方法,並且是程式中共用的功能,可以使用靜態方法,以便復用,並且不用建立物件。

為使其更嚴謹,不允許建立物件,可以私有化建構函式。

隨著類載入執行,只執行一次。用於給類初始化。

public

class

demo

// 構造**塊

// 建構函式

demo

()

demo

(intx)

demo

(intx,

string

name

)

public

void

print

()

public

static

void

main

(string

args

)

}

對於

demod =

newdemo(5

);

執行過程:

1. 使用new,所以先找到demo.class檔案並載入記憶體(方法區)。

2. 進行靜態域初始化。

3. 執行該類中的靜態**塊,如果有,進行預設初始化。

4. 堆區開闢空間,分配位址。

5. 堆區中建立物件,進行預設初始化。

6. 對物件進行顯式初始化。

7. 對物件進行構造**塊初始化。

8. 對物件進行建構函式初始化。

9. 將記憶體位址賦值給棧區中的d變數。

主函式:特殊函式,可以被jvm呼叫作為程式入口。

public:代表訪問許可權最大。

static:代表主函式隨類的載入就已經存在。

void:主函式無具體的返回值。

main:不是關鍵字,但是是乙個特殊單詞,可以被jvm識別。

引數string args,字串陣列

主函式是固定格式,jvm識別。但是可以過載等,但是虛擬機器只從字串陣列引數主函式執行(args可以更改其他名字)。

java構造器 筆記

基類的構造器總是在匯出類的構造過程中被呼叫,而且按照繼承層次逐層向上鏈結,使每個基類構造器得到呼叫。這樣做是有意義的,因為 構造器具有一項特殊任務 檢查物件是否被正確地構造 匯出類只能訪問它自己的成員,不能訪問基類中的成員 基類成員通常是private型別 只有基類構造器才有恰當的權利來對自己的成員...

Java筆記 變數 構造器

本篇筆記主要是成員變數 區域性變數 構造器 1.成員變數和區域性變數 1 成員變數 類範圍內定義的變數 成員變數有 1 類field 有static修飾的 從這個類的準備階段開始存在到這個類被完全銷毀 訪問方式 類.類field 或 例項.類field 2 例項filed 沒有static修飾的 從...

JAVA學習筆記(七) 建構函式

建構函式,函式名與類名要一致 物件一建立就會呼叫與之對應的建構函式 建構函式的作用,可以用於給物件進行初始化。建構函式的小細節 當乙個類中沒有定義建構函式時,那麼系統會預設給類加入乙個空引數的建構函式。當在類中自定義了建構函式後,預設的構咱函式就沒有了 建構函式和一般函式在寫法上有不同 在執行商也有...