12 7java物件導向之this關鍵字的說明

2021-06-27 12:06:49 字數 2313 閱讀 3310

this關鍵字可以指代那些呢?  可以表示操作類的屬性、方法和當前物件。

案例:定義乙個類,表示年齡和姓名基本資訊,例項化物件並輸出結果

//本程式是對this關鍵字的說明

class info

//方法

public void print() }

public class testthis

}

結果如下:

結果沒有任何問題,那麼問題來了,在建構函式的書寫過程中,public info(string n, int a) 沒有人能說明白n和a分別代表了什麼,要麼使用的引數名稱和屬性名稱相似,要麼就直接使用屬性名稱。

案例:使用屬性名稱:

//本程式是對this關鍵字的說明

class info

//方法

public void print() }

public class testthis

}

結果:

直接用屬性名稱作為引數無法傳遞,導致不能實現。要修改就可以使用this關鍵字。分析得知,我們知道name=name中的第乙個name代表的是類的屬性名,所以可以用this.name代替。

案例:

//本程式是對this關鍵字的說明

class info

//方法

public void print() }

public class testthis

}

結果:

進一步說明:只要是操作本類的屬性時,就可以用this表示。

在構造方法中,可能會有多個,而且每種構造方法都可能相似,有相同的語句。如何才能避免重複?

案例:同上類似,構造方法多。

//本程式是對this關鍵字的說明

class info

public info(string name)

public info(string name, int age)

//方法

public void print() }

public class testthis

}

結果

本程式不論呼叫哪個方法,都會呼叫system.out.println("*******產生了乙個物件");  所以重複性太高,修改**如下:

//本程式是對this關鍵字的說明

class info

public info(string name)

public info(string name, int age)

//方法

public void print() }

public class testthis

}

注意:構造方法在類例項化時呼叫,在類呼叫普通方法前,this呼叫構造方法時必須放在首行,而且this至少乙個構造方法不使用this。

當前物件:正在操作類中方法的物件,此時this不固定,對著呼叫類中的方法不同而不同,之前this屬性是當前的物件。

//本程式是對this關鍵字的說明

class info

}public class testthis

}

結果:

使用this一定要分清楚使用的是物件、屬性、還是方法。

//本程式是對this關鍵字的說明

class info

}public class testthis

}

生成物件之後,例項化。第一行列印這個s是傳遞的引數s,第二個列印的是物件的屬性,四三個列印的是引數傳遞後的s。

//本程式是對this關鍵字的說明

class a

public void print()

}class b

public void print()

}public class testthis

}

結果:

說明:

java入門教程 12 7Java資料庫更新

資料庫更新操作包括資料表建立 刪除 以及資料表記錄的增加 刪除 修改等操作。如果利用資料 sql命令實現,則利用statement對旬的executeupdate 方法,執行sql的update語句,實現資料表的修改 執行sql的insert語句,實現資料表記錄的新增。例如,在前面資料為查詢例子基礎...

JAVA物件導向之抽象

一 物件導向思想 1.抽象過程 所有程式語言都提供了一套抽象機制 對問題的抽象 組合語言是對底層機器的輕微抽象,c basic 語言是對組合語言的抽象。但是他們在解決問題時依然要求基於計算機的結構 面向過程 而不是基於問題來解決。所以程式設計師在解決問題時,經常需要建立機器模型 實際問題之間的關聯。...

java物件導向之封裝

封裝 是指隱藏物件的屬性以及具體實現細節,外部只能訪問公共部門。簡單的來說,外部無法訪問呼叫乙個類的private部分,只能呼叫他的公共部門,這就叫做封裝 好處 將變化隔離 便於外部使用 提高重用性 提高安全性 private關鍵字 1.是乙個許可權修飾符,許可權級別最低 2.用於修飾成員變數和成員...