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