java中this關鍵字

2021-08-14 15:42:36 字數 1930 閱讀 8283

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 是運算子只被用於物件引用變數,檢查左邊的被測試物件是...