大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 編程內(nèi)容分享,Java中this關(guān)鍵字的作用

編程內(nèi)容分享,Java中this關(guān)鍵字的作用

更新時(shí)間:2020-06-30 15:41:29 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2278次

1、this調(diào)用當(dāng)前屬性:其主要作用是當(dāng)需要給類中的數(shù)據(jù)進(jìn)行初始化時(shí),可以通過(guò)this來(lái)進(jìn)行賦值,而不用隨便定義一個(gè)變量來(lái)進(jìn)行賦值,更有利于代碼的閱讀與理解

如:

class?Book{//定義書的類
????private?String?name;//書本名字
????private?int?price;//書本價(jià)格
????public?Book(String?name,int?price){?//使用this對(duì)類的數(shù)據(jù)進(jìn)行初始化
????????this.name?=?name;????????   ? this.price?=?price;
????}
????/*public?Book(String?n,int?p){?//若不使用this關(guān)鍵字只能這樣進(jìn)行賦值,不利于將變量與屬性統(tǒng)一起來(lái)
????????name?=?n;
????????price?=?p;
????}*/
????public?String?getInfo(){
????????return?"書籍:"?+?name?+?",價(jià)格:"?+?price;
????}
}
public?class?ThisDemo{
????public?static?void?main(String?args[]){
????????System.out.printIn(new?Book("Java",89.9).getInfo())
????}
}

2、this調(diào)用方法(普通方法、構(gòu)造方法)

(1)普通方法:

?class?Book{//定義書的類
?????private?String?name;//書本名字
?????private?int?price;//書本價(jià)格
?????public?Book(String?name,int?price){//使用this對(duì)類的數(shù)據(jù)進(jìn)行初始化
?????????this.name?=?name;?6?????????this.price?=?price;
?????????this.print();//調(diào)用本類普通方法,雖然可以不用使用this也可以進(jìn)行本類普通方法的調(diào)用,但是好的習(xí)慣最好應(yīng)該加上,目的是可以區(qū)分方法的定義來(lái)源
?????}
?????public?String?getInfo(){
?????????return?"書籍:"?+?name?+?",價(jià)格:"?+?price;
?????}
?????public?void?print(){
?????????System.out.printIn("***********");
?????}
?}
?public?class?ThisDemo{
?????public?static?void?main(String?args[]){
?????????System.out.printIn(new?Book("Java",89.9).getInfo())
?????}
?}

(2)構(gòu)造方法:普通方法與構(gòu)造方法的區(qū)別是構(gòu)造方法在創(chuàng)建后只能掉用一次,用來(lái)初始化數(shù)據(jù),而普通方法在創(chuàng)建后可以調(diào)用多次。

當(dāng)需要使用構(gòu)造方法輸出同一重復(fù)內(nèi)容時(shí),若不使用this關(guān)鍵字,則只能使用如下代碼:

class?Book{//定義書的類
????private?String?name;//書本名字
????private?int?price;//書本價(jià)格
????public?Book(){//無(wú)參構(gòu)造
????????System.out.printIn("*************");
????}
????public?Book(String?name){//一參構(gòu)造
????????System.out.printIn("*************");
????????this.name?=?name;
????}
????public?Book(String?name,int?price){//二參構(gòu)造
????????System.out.printIn("*************");
????????this.name?=?name;
????????this.price?=?price;
????????}
????public?String?getInfo(){
????????return?"書籍:"?+?name?+?",價(jià)格:"?+?price;
????}
}
public?class?ThisDemo{
????public?static?void?main(String?args[]){
????????System.out.printIn(new?Book("Java",89.9).getInfo())
????}
}

顯然,這樣大大浪費(fèi)了代碼行數(shù),而應(yīng)該使用this進(jìn)行構(gòu)造方法的調(diào)用,方法如下:、

class?Book{//定義書的類
????private?String?name;//書本名字
????private?int?price;//書本價(jià)格
????public?Book(){//無(wú)參構(gòu)造
????????System.out.printIn("*************");
????}
????public?Book(String?name){//一參構(gòu)造
????????this();//調(diào)用本類中的無(wú)參構(gòu)造
????????this.name?=?name;
????}
????public?Book(String?name,int?price){//二參構(gòu)造
????????this(name);//調(diào)用本類中的一參構(gòu)造
????????this.price?=?price;
????????}
????public?String?getInfo(){
????????return?"書籍:"?+?name?+?",價(jià)格:"?+?price;
????}

}
public?class?ThisDemo{
????public?static?void?main(String?args[]){
????????System.out.printIn(new?Book("Java",89.9).getInfo())
????}
}

注:對(duì)this調(diào)用必須是構(gòu)造方法中的第一個(gè)語(yǔ)句,否則便會(huì)出錯(cuò),當(dāng)然也不能在普通方法中調(diào)用構(gòu)造方法。

最為重要的是,使用this調(diào)用不能形成循環(huán),即不能形成遞歸調(diào)用而沒(méi)有出口。

3、this表示當(dāng)前方法

class?Book{
????public?void?fun(){
????????System.out.printIn("FUN方法"+this);
????}
????}
}
public?class?ThisDemo{
????public?static?void?main(String?args[]){
????????Book?b1?=?new?Book();
????????System.out.printIn("MAIN方法"+b1);
????????b1.fun();//有b1調(diào)用fun方法(this?=?b1)
????????//兩個(gè)輸出結(jié)果的地址一樣,代表著此時(shí)this代表著b1
????????System.out.printIn("*************")
????????Book?b2?=?new?Book();
????????System.out.printIn("MAIN方法"+b2);
????????b2.fun();//此時(shí)輸出結(jié)果和b2一樣
????}
}

在整個(gè)過(guò)程中,this的定義沒(méi)有變,只要有某一個(gè)對(duì)象調(diào)用本類中的方法,此時(shí)this就表示當(dāng)前執(zhí)行的對(duì)象。

編程內(nèi)容分享,Java中this關(guān)鍵字的作用

Java技術(shù)相關(guān)內(nèi)容

Java this關(guān)鍵字的使用(在構(gòu)造方法中):http://www.dabaquan.cn/tutorial_java_se/1043.html

Java中static關(guān)鍵字:http://www.dabaquan.cn/tutorial_java_se/1044.html

Java this關(guān)鍵字的使用(在實(shí)例方法中):http://www.dabaquan.cn/tutorial_java_se/1031.html

Java中this關(guān)鍵字是什么:http://www.dabaquan.cn/tutorial_java_se/118.html

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程內(nèi)容分享,Java中this關(guān)鍵字的作用”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产一级做a爱片久久毛片a | 日本三级中文字幕 | 国产日韩精品一区在线观看播放 | 久草男人天堂 | 日日射天天操 | 精品香蕉99久久久久网站 | 男女啪网站| 一级白嫩美女毛片免费 | 国产成人精品一区二区三区 | 日韩中文字幕一在线 | 久久精品日日躁夜夜躁欧美 | 亚洲精品视频观看 | 久久精品国产午夜伦班片 | 九九热精品视频在线播放 | 97精品视频共享总站 | 东北一级毛片 | 久草在线免费看视频 | 丰满寡妇一级毛片 | 久久免费视频在线观看30 | 欧美成人精品一级高清片 | 成人黄色网址 | 久久国产精品夜色 | 青青青国产观看免费视频 | 一级毛片免费高清视频 | 男人猛躁女人成人免费视频 | 欧美视频在线网站 | 亚洲日产 | 快射视频欧美 | 国产精品久久久久久久免费大片 | 特级无码a级毛片特黄 | 狠狠色噜噜狠狠狠97影音先锋 | 国产精品www| 欧美乱人免费视频观看 | 久久77777| 四虎地址8848jia | 日韩se| 中文字幕亚洲一区二区v@在线 | 国产一区二区三区四区在线 | 97久久综合精品久久久综合 | 夜夜操夜夜操 | 国产日韩欧美亚洲综合在线 |