關於this 的使用

2021-04-20 11:36:29 字數 1408 閱讀 3047

如有不對的地方請大家指出,呵呵.

this 的使用

1. this是指當前物件自己。

當在乙個類中要明確指出使用物件自己的的變數或函式時就應該加上this引用。如下面這個例子中:

public class a

public static void main(string args)

}執行結果:

s = helloworld!

1 -> this.s = hello

2 -> this.s = helloworld!

在這個例子中,建構函式a中,引數s與類a的變數s同名,這時如果直接對s進行操作則是對引數s進行操作。若要對類a的變數s進行操作就應該用this進行引用。執行結果的第一行就是直接對引數s進行列印結果;後面兩行分別是對物件a的變數s進行操作前後的列印結果。

2. 把this作為引數傳遞

當你要把自己作為引數傳遞給別的物件時,也可以用this。如:

public class a

public void print()

}public class b

public void print()

}執行結果:

hello from a!

hello from b!

在這個例子中,物件a的建構函式中,用new b(this)把物件a自己作為引數傳遞給了物件b的建構函式。

3. 注意匿名類和內部類中的中的this。

有時候,我們會用到一些內部類和匿名類。當在匿名類中用this時,這個this則指的是匿名類或內部類本身。這時如果我們要使用外部類的方法和變數的話,則應該加上外部類的類名。如下面這個例子:

public class a catch(interruptedexception ie) }}

};thread.start();

} public void run()

public static void main(string args) throws exception

}在上面這個例子中, thread 是乙個匿名類物件,在它的定義中,它的 run 函式裡用到了外部類的 run 函式。這時由於函式同名,直接呼叫就不行了。這時有兩種辦法,一種就是把外部的 run 函式換乙個名字,但這種辦法對於乙個開發到中途的應用來說是不可取的。那麼就可以用這個例子中的辦法用外部類的類名加上 this 引用來說明要呼叫的是外部類的方法 run

qqqqqqqqqqqqqqq

我在同乙個類中定義了好幾個構造方法並且想在乙個構造方法中呼叫另乙個。

答:在構造方法第一行呼叫this(...)。

例子:public class q1

q1()

void add()

public static void main(string args)

}

關於MenuHelp的使用

很多程式都是有選單和狀態列,當用滑鼠點開選單移動選擇各選單項的時候,會在狀態列顯示關於該選單項的說明。這個功能mfc是封裝好的,用嚮導生成即可,但用api程式設計就得自己編寫 了,查了一下msdn,有個menuhelp函式可以做到,函式原型為 void menuhelp uint umsg,wpar...

關於 errno的使用

errno 是乙個全域性的變數,在 errno.h 中有它的定義 if defined mt defined dll defined mac crtimp extern int cdecl errno void define errno errno else ndef mt ndef dll crt...

關於 irq 的使用

關於 irq使用,首先看arm公司的說明 arm 編譯器 armcc 支援的函式關鍵字和運算子。下表列出的關鍵字是 arm 對 c 和 c 標準的擴充套件。表中沒有介紹不具備 arm 編譯器特有的行為或限制的標準 c 和 c 關鍵字。arm 編譯器支援的關鍵字擴充套件表 關鍵字 align int6...