this關鍵字的理解和記憶體原理

2021-09-28 19:26:34 字數 1267 閱讀 3458

public

class

student

public string getname()

public

void

setage

(int age)

public

intgetage()

public

void

show()

}

//下列**的執行結果是( )

//定義person類

public

class

person

public

void

showage

(int age)

}//定義測試類

public

class

test

}

a;張三 18 李四 28

b;hello 99 world100

c;張三 99 李四 100

d;hello 18 world 28

答案是 c

1.person類中showname方法的引數名稱和成員變數的名稱相同,在方法體中輸出 this.name, this是當前類的乙個物件,哪個物件呼叫這個showname方法,那麼this就代表哪個物件,並且this.name得到的是這個物件的成員變數name的值,並不是引數name的值,所以最終輸出的是這個物件的成員變數name的值。

2.person類中showage方法的引數名稱和成員變數的名稱相同,在方法體中輸出 age,變數查詢遵守就近查詢原則,所以最終輸出的是引數age的值。

3.test類中的main方法執行,先建立第乙個person物件p1,並分別給成員變數賦值,最終p1物件的成員變數name的值為"張三",成員變數age的值為 18,然後建立第二個person物件p2,並分別給成員變數賦值,最終p2物件的成員變數name的值為 「李四」,成員變數age的值為 28,最後分別呼叫兩個物件的成員方法。

流程詳解:

執行p1.showname(「hello」),輸出p1物件的成員變數name的值,控制台會輸出:「張三」;

執行p1.showage(99),輸出引數age的值,控制台會輸出:99;

執行p2.showname(「world」),輸出p2物件的成員變數name的值,控制台會輸出:「李四」;

執行p2.showage(100),輸出引數age的值,控制台會輸出:100; 所以最終控制台輸出的結果為: 張三 99 李四 100

綜上所述,正確答案是c

this關鍵字理解

public class test implements runnable synchronized void m1 throws interruptedexception synchronized void m2 throws interruptedexception override publi...

this關鍵字的理解

test type button value 按鈕 onclick test function test 使用標籤屬性註冊事件 此時this 指向的是 window 物件 使用 addeventlistener 等註冊。此時this 也是指向 input document.getelementbyi...

this關鍵字的理解

this理解為 當前物件 或 當前正在建立的物件 this代表所在類的當前物件的引用 位址值 即物件對自己的引用。備註 意思方法被那個物件呼叫,方法中的this就代表那個物件。即誰呼叫,this就是誰。this修飾的變數用於指代成員變數,其主要作用是 區分區域性變數和成員變數的重名問題 方法的形參如...