1
this
關鍵字
疑問:建立的p
物件為什麼沒有值。
解答:name
與age
在指定的建構函式裡面已經存在,當name=name
這個語句執行的時候,如果jvm
在該方法內能尋找到該變數,則不會去尋找成員變數,那麼要想指定給成員變數或物件的屬性進行初始化賦值,那麼必須指定name
是成員屬性。
1.1
this
的概述
this
關鍵字代表是物件的引用。也就是this
在指向乙個物件,所指向的物件就是呼叫該函式的物件引用。 1
:沒有this
會出現什麼問題 1
:定義person類
1:有姓名年齡成員變數,有說話的方法。 2
:定義構造方法,無參的,多個有參的。都要實現。
class person
//有引數建構函式
person(int a)
//有引數建構函式
person(string n)
//有引數建構函式
person(int a, string n)
//普通函式
void speak()
}
2
;假設定義
40個成員變數,第乙個有參構造初始化
20個變數,第二個有參構造需要初始化
40個變數。 1
:第二個有參構造想要使用第乙個有參構造。 2
:成員函式相互之間可以呼叫。建構函式可以嗎? 3
:編譯失敗,那麼建構函式之間應該存在相互呼叫的模式。
this
就可以完成這個工作。
class person
person(string n)
person(stringn,int a)
}
3
:總結:實際工作中,存在著建構函式之間的相互呼叫,但是建構函式不是普通的成員函式,不能通過函式名自己接呼叫 所以
sun公司提供
this
關鍵字。 2
:this
是什麼
1:在建構函式中列印
this 2
:建立物件,列印物件名p
3:this和p
是一樣的都是記憶體位址值。 4
:this
代表所在函式所屬物件的引用。
class student
student(string name)
student(string name, string gender,int age)
void speak()
void run() }
class demo2
}
3
:遞迴構造函式呼叫 1
:建構函式的相互呼叫
在編譯時期會報錯
class student
//建構函式見相互呼叫
student(string name)
student(string name, string gender,int age)
void speak()
void run()
}
4
:this
只能在非靜態中(沒有
static
修飾的)函式使用 5
:建構函式間相互呼叫必須放在建構函式的第乙個語句中,否則編譯錯誤 6
:可以解決建構函式中物件屬性和函式形參的同名問題。
static關鍵字 java關鍵字
先按照宣告順序初始化基類靜態變數和靜態 塊,接著按照宣告順序初始化子類靜態變數和靜態 塊,而後按照宣告順序初始化基類普通變數和普通 塊,然後執行基類建構函式,接著按照宣告順序初始化子類普通變數和普通 塊,最後執行子類建構函式。import static com.test.test1.fu.say i...
Java中的關鍵字
abstract 抽象的 continue 繼續 for 當 的時候 new 新建 switch 轉換 assert 斷言 default 預設 if 如果 package 打包 synchronized 同步 boolean 布林 do 做 goto 跳轉到 private 私有的 this 這個...
Java 中 instanceof關鍵字
instanceof和isinstance object obj 和isassignablefrom class cls 的區別和聯絡 程式設計的時候可能會遇到乙個不知道它屬於哪個類的物件,我們可以用下列運算子或者方法來判斷。instanceof 是運算子只被用於物件引用變數,檢查左邊的被測試物件是...