本篇文章為大家展示了如何在java中使用this關(guān)鍵字,代碼簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)專(zhuān)注于扎魯特旗網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供扎魯特旗營(yíng)銷(xiāo)型網(wǎng)站建設(shè),扎魯特旗網(wǎng)站制作、扎魯特旗網(wǎng)頁(yè)設(shè)計(jì)、扎魯特旗網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造扎魯特旗網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供扎魯特旗網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
簡(jiǎn)介
每一個(gè)行為發(fā)生的時(shí)候,肯定會(huì)有一個(gè)發(fā)生這個(gè)行為的主體。在編程語(yǔ)言里面每一個(gè)定義的方法里,都會(huì)有一個(gè)this關(guān)鍵字,這個(gè)this關(guān)鍵不是由在那兒定義來(lái)決定的,而是由誰(shuí)來(lái)執(zhí)行的決定的。這是判斷this關(guān)鍵。比如說(shuō)吃飯這個(gè)方法它是由上帝來(lái)定義的,世界上所有的人來(lái)執(zhí)行。吃飯這個(gè)行為發(fā)生的時(shí)候,主體就是在吃飯的這個(gè)人,也就是要有人執(zhí)行吃飯這個(gè)行為。 有時(shí)候我們需要在一個(gè)行為(方法)里,能明確知道這個(gè)行為是誰(shuí)來(lái)執(zhí)行的,確切的說(shuō)就是我要知道誰(shuí)在吃飯。在編程語(yǔ)言里面每一個(gè)定義的方法里,都會(huì)有一個(gè)this關(guān)鍵字,這個(gè)this關(guān)鍵不是由在那兒定義來(lái)決定的,而是由誰(shuí)來(lái)執(zhí)行的決定的。這是判斷this關(guān)鍵。
1、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一樣 } }
2、this調(diào)用當(dāng)前屬性:其主要作用是當(dāng)需要給類(lèi)中的數(shù)據(jù)進(jìn)行初始化時(shí),可以通過(guò)this來(lái)進(jìn)行賦值,而不用隨便定義一個(gè)變量來(lái)進(jìn)行賦值,更有利于代碼的閱讀與理解()
class Book{//定義書(shū)的類(lèi) private String name;//書(shū)本名字 private int price;//書(shū)本價(jià)格 public Book(String name,int price){ //使用this對(duì)類(lèi)的數(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 "書(shū)籍:" + name + ",價(jià)格:" + price; } } public class ThisDemo{ public static void main(String args[]){ System.out.printIn(new Book("Java",89.9).getInfo()) } }
3、this調(diào)用方法(普通方法、構(gòu)造方法)
(1)普通方法:
class Book{//定義書(shū)的類(lèi) private String name;//書(shū)本名字 private int price;//書(shū)本價(jià)格 public Book(String name,int price){//使用this對(duì)類(lèi)的數(shù)據(jù)進(jìn)行初始化 this.name = name; 6 this.price = price; this.print();//調(diào)用本類(lèi)普通方法,雖然可以不用使用this也可以進(jìn)行本類(lèi)普通方法的調(diào)用,但是好的習(xí)慣最好應(yīng)該加上,目的是可以區(qū)分方法的定義來(lái)源 } public String getInfo(){ return "書(shū)籍:" + 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{//定義書(shū)的類(lèi) private String name;//書(shū)本名字 private int price;//書(shū)本價(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 "書(shū)籍:" + 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{//定義書(shū)的類(lèi) private String name;//書(shū)本名字 private int price;//書(shū)本價(jià)格 public Book(){//無(wú)參構(gòu)造 System.out.printIn("*************"); } public Book(String name){//一參構(gòu)造 this();//調(diào)用本類(lèi)中的無(wú)參構(gòu)造 this.name = name; } public Book(String name,int price){//二參構(gòu)造 this(name);//調(diào)用本類(lèi)中的一參構(gòu)造 this.price = price; } public String getInfo(){ return "書(shū)籍:" + 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)有出口。
在整個(gè)過(guò)程中,this的定義沒(méi)有變,只要有某一個(gè)對(duì)象調(diào)用本類(lèi)中的方法,此時(shí)this就表示當(dāng)前執(zhí)行的對(duì)象。
上述內(nèi)容就是在java中使用this關(guān)鍵字的方法,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前名稱:如何在java中使用this關(guān)鍵字
本文路徑:http://aaarwkj.com/article2/igigic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)、建站公司、動(dòng)態(tài)網(wǎng)站、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)