this,super的使用以及不同類之間物件的呼叫

2021-08-30 16:00:48 字數 1182 閱讀 7488

this可以呼叫本類中物件的屬性和方法,而super可以呼叫父類中物件的屬性和方法,可以簡化**,物件用this或者super替代。關於類和物件的關係,有一點不得不提,在乙個類中只能使用乙個物件,如果建立並使用多個類會導致「空指標異常」。當你需要在a類中呼叫b類的屬性和方法時,需要把b類的物件傳給a類。接下來我們通過乙個例子來展示這個過程:

這裡我們關注前兩個類,第乙個類中寫窗體的**,第二個類中寫***的**。我們需要在第二個類中用到第乙個類的畫筆。

drawmouse mouse = new drawmouse();

mouse.setgr(g);

在a類中建立了b類的物件,即可呼叫b類中的setgr函式。

private graphics gr;
public void setgr(graphics g)

b類建立乙個a類的物件,來接收a類的物件,接下來即可呼叫a類的方法。

private graphics g;

public void setgr(graphics g)

此處也可以建立乙個同名的物件,使用我們上面提到的this在下方賦物件時來替代gr,表明是使用此類物件的g。當需要多次呼叫時會發現this可以大大簡化**。

至於super的使用,我們再舉乙個例子。如下:

public class drawframe extends jpanel
這裡寫了乙個drawframe類,繼承jpanel類。

public void paint(graphics g)

{super.paint(g);

for(int i=0;i這個paint的方法是重寫於jpanel的乙個方法,super.paint(g);這個方法是呼叫原先的畫板元件的繪製方法,super則指的是jpanel,它下方的**是我們手動增加進去的,實現一些畫板的恢復功能。關於畫板的恢復,我們會在後面的部落格中提到。

順便一提,在新增滑鼠***時也可以用到this的方法。即,給畫板新增***。

//給窗體新增滑鼠***方法

this.addmouselistener(mouse);

this.addmousemotionlistener(mouse);

CMFCColorButton的使用以及重繪

cmfccolorbutton是visual studio 2008 sp1版本以上提供的顏色採集器。系統環境 windows 7 程式設計環境 visual studio 2008 sp1 下面介紹下使用步驟 1.新建基於對話方塊的工程,名稱為mycolorbuttondemo 2.拖動乙個按鈕到...

NSSortDescriptor使用以及陣列排序

nssortdescriptor 指定用於物件陣列排序的物件的屬性。物件可能是字典,這種情況就是對字典陣列排序 如果是employee物件需要按照name來排序,就生成下面的descriptor nssortdescriptor descriptor nssortdescriptor sortdes...

HandlerThread的使用以及原理

官方的描述 handlerthread 是乙個包含 looper 的 thread,我們可以直接使用這個 looper 建立 handler。handlerthread 的使用場景 我們知道,handlerthread 所做的就是在新開的子執行緒中建立了 looper,那它的使用場景就是 threa...