這個一般在內部類里面用。。類名.this表示 那個類名所代表的類的對象。。。
企業建站必須是能夠以充分展現企業形象為主要目的,是企業文化與產品對外擴展宣傳的重要窗口,一個合格的網站不僅僅能為公司帶來巨大的互聯網上的收集和信息發布平臺,創新互聯面向各種領域:柔性防護網等成都網站設計、全網整合營銷推廣解決方案、網站設計等建站排名服務。
比如class A {
public void method(){
A.this就是表示A的對象。。在這種情況下和this是一樣的
}
class B {
void method1() {
A.this還是表示A的對象。。但是這里是在內部類里面。。所以這里的this就是內部類B的對象了。。但是我們經常會在內部類里面調用外部的東西。。所以就用A.this這種方式就行了
}
}
}
this表示類實例本身。
this的用法:
1、表示對當前對象的引用!
public?class?A{
public?A?getA(){
return?this;//表示獲取當前實例本身
}
}
2、表示類的成員變量,而非函數參數,注意在函數參數和成員變量同名是進行區分!
public?class?A{
private int?a?=?0;//位置1
public?A?getA(int?a){
this.a?=?a;//前面this.a表示?位置1?的a,賦值=號右側的表示參數a
}
}
3、用于在構造方法中引用滿足指定參數類型的構造器。
public?class?A{
public?A(int?a){
}
public?A(){
this(1);//這里調用自身的構造函數public?A(int?a){
}
}
Java是由Sun Microsystems公司推出的Java面向對象程序設計語言(以下簡稱Java語言)和Java平臺的總稱。由James Gosling和同事們共同研發,并在1995年正式推出。Java最初被稱為Oak,是1991年為消費類電子產品的嵌入式芯片而設計的。1995年更名為Java,并重新設計用于開發Internet應用程序。
用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺、動態Web、Internet計算。從此,Java被廣泛接受并推動了Web的迅速發展,常用的瀏覽器均支持Javaapplet。另一方面,Java技術也不斷更新。Java自面世后就非常流行,發展迅速,對C++語言形成有力沖擊。在全球云計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。2010年Oracle公司收購Sun Microsystems。
使用this調用本類中的屬性\x0d\x0a\x0d\x0a現在觀察以下代碼,看會有那些問題:\x0d\x0a\x0d\x0apublic void setName(String name){\x0d\x0a\x0d\x0aname = name ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a這里面的兩個name都是setName方法中的name參數。\x0d\x0a\x0d\x0a此時,特別希望可以通過一個指定的標識明確的表示要把傳入的name參數的值給類中的屬性,所以此時就需要使用this關鍵字,使用this.name就表示類中的屬性。\x0d\x0a\x0d\x0aclass Person{\x0d\x0a\x0d\x0aprivate String name ;\x0d\x0a\x0d\x0aprivate int age ;\x0d\x0a\x0d\x0apublic Person(String name,int age){\x0d\x0a\x0d\x0athis.setName(name) ;\x0d\x0a\x0d\x0athis.setAge(age) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void setName(String name){\x0d\x0a\x0d\x0athis.name = name ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void setAge(int age){\x0d\x0a\x0d\x0athis.age = age ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic String getName(){\x0d\x0a\x0d\x0areturn this.name ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic int getAge(){\x0d\x0a\x0d\x0areturn this.age ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void print(){\x0d\x0a\x0d\x0aSystem.out.println("姓名:"+this.name+",年齡:"+this.age) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a};\x0d\x0a\x0d\x0apublic class Demo35{\x0d\x0a\x0d\x0apublic static void main(String args[]){\x0d\x0a\x0d\x0aPerson p1 = new Person("張三",30) ;\x0d\x0a\x0d\x0ap1.print() ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a};\x0d\x0a\x0d\x0a使用this還可以從一個構造方法中調用其他構造方法。\x0d\x0a\x0d\x0a例如:有以下一個要求,一個類中存在了三個構造方法,但是要求,不管怎么調用,最終都要求可以在對象實例化的時候打印一個“新的對象產生了”的提示。\x0d\x0a\x0d\x0aclass Person{\x0d\x0a\x0d\x0aprivate String name ;\x0d\x0a\x0d\x0aprivate int age ;\x0d\x0a\x0d\x0apublic Person(){\x0d\x0a\x0d\x0aSystem.out.println("新的對象產生了。。。") ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic Person(String name){\x0d\x0a\x0d\x0aSystem.out.println("新的對象產生了。。。") ;\x0d\x0a\x0d\x0athis.setName(name) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic Person(String name,int age){\x0d\x0a\x0d\x0aSystem.out.println("新的對象產生了。。。") ;\x0d\x0a\x0d\x0athis.setName(name) ;\x0d\x0a\x0d\x0athis.setAge(age) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void setName(String name){\x0d\x0a\x0d\x0athis.name = name ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void setAge(int age){\x0d\x0a\x0d\x0athis.age = age ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic String getName(){\x0d\x0a\x0d\x0areturn this.name ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic int getAge(){\x0d\x0a\x0d\x0areturn this.age ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void print(){\x0d\x0a\x0d\x0aSystem.out.println("姓名:"+this.name+",年齡:"+this.age) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a};\x0d\x0a\x0d\x0a以上代碼雖然可以實現功能,但是同樣的代碼出現了三次,而且后面的兩次出現純屬多余吧。用this()的形式可以調用類中的無參構造方法。\x0d\x0a\x0d\x0aclass Person{\x0d\x0a\x0d\x0aprivate String name ;\x0d\x0a\x0d\x0aprivate int age ;\x0d\x0a\x0d\x0apublic Person(){\x0d\x0a\x0d\x0aSystem.out.println("新的對象產生了。。。") ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic Person(String name){\x0d\x0a\x0d\x0a// 最終都是調用無參構造方法\x0d\x0a\x0d\x0athis() ;\x0d\x0a\x0d\x0athis.setName(name) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic Person(String name,int age){\x0d\x0a\x0d\x0athis(name) ;\x0d\x0a\x0d\x0athis.setAge(age) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void setName(String name){\x0d\x0a\x0d\x0athis.name = name ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void setAge(int age){\x0d\x0a\x0d\x0athis.age = age ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic String getName(){\x0d\x0a\x0d\x0areturn this.name ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic int getAge(){\x0d\x0a\x0d\x0areturn this.age ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void print(){\x0d\x0a\x0d\x0aSystem.out.println("姓名:"+this.name+",年齡:"+this.age) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a};\x0d\x0a\x0d\x0apublic class Demo36{\x0d\x0a\x0d\x0apublic static void main(String args[]){\x0d\x0a\x0d\x0aPerson p1 = new Person("張三",30) ;\x0d\x0a\x0d\x0ap1.print() ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a};\x0d\x0a\x0d\x0a注意點1:\x0d\x0a\x0d\x0a如果使用了this調用其他構造方法,則此語句,必須寫在構造方法的首行。\x0d\x0a\x0d\x0apublic void fun(){\x0d\x0a\x0d\x0a// 發現在調用fun方法的時候,必須先設置name的值\x0d\x0a\x0d\x0athis("zhangsan") ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic Person(String name,int age){\x0d\x0a\x0d\x0athis.setAge(age) ;\x0d\x0a\x0d\x0athis(name) ; //-- 必須放在首行\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a注意點2:\x0d\x0a\x0d\x0a使用this可以調用本類中的其他構造方法,但是至少留一個構造方法,作為程序的出口。\x0d\x0a\x0d\x0apublic Person(){\x0d\x0a\x0d\x0athis("a",10) ;\x0d\x0a\x0d\x0aSystem.out.println("新的對象產生了。。。") ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic Person(String name){\x0d\x0a\x0d\x0a// 最終都是調用無參構造方法\x0d\x0a\x0d\x0athis() ;\x0d\x0a\x0d\x0athis.setName(name) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic Person(String name,int age){\x0d\x0a\x0d\x0athis(name) ; //-- 必須放在首行\x0d\x0a\x0d\x0athis.setAge(age) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0athis最重要的特性 —— 表示當前對象\x0d\x0a\x0d\x0a當前對象在程序中用以下形式體現:\x0d\x0a\x0d\x0a· 當前操作此方法的對象,就稱為當前對象。\x0d\x0a\x0d\x0aclass Demo{\x0d\x0a\x0d\x0apublic void print(){\x0d\x0a\x0d\x0aSystem.out.println(this) ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a};\x0d\x0a\x0d\x0apublic class Demo38{\x0d\x0a\x0d\x0apublic static void main(String args[]){\x0d\x0a\x0d\x0aDemo d1 = new Demo() ;\x0d\x0a\x0d\x0aSystem.out.println(d1) ;\x0d\x0a\x0d\x0ad1.print() ;\x0d\x0a\x0d\x0aSystem.out.println("---------------------") ;\x0d\x0a\x0d\x0aDemo d2 = new Demo() ;\x0d\x0a\x0d\x0aSystem.out.println(d2) ;\x0d\x0a\x0d\x0ad2.print() ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a};\x0d\x0a\x0d\x0a回顧:\x0d\x0a\x0d\x0a之前講解的兩個對象比較的程序。\x0d\x0a\x0d\x0a// 在類的內部增加一個比較的方法\x0d\x0a\x0d\x0apublic boolean compare(Person p){\x0d\x0a\x0d\x0aPerson p1 = this ;\x0d\x0a\x0d\x0aPerson p2 = p ;\x0d\x0a\x0d\x0aif(p1.name.equals(p2.name)p1.age==p2.age){\x0d\x0a\x0d\x0areturn true ;\x0d\x0a\x0d\x0a}else{\x0d\x0a\x0d\x0areturn false ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a分析程序的運行過程:\x0d\x0a\x0d\x0aclass A{\x0d\x0a\x0d\x0aprivate B b = null ;\x0d\x0a\x0d\x0apublic A(){\x0d\x0a\x0d\x0athis.b = new B(this) ;\x0d\x0a\x0d\x0athis.b.fun() ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void hello(){\x0d\x0a\x0d\x0aSystem.out.println("Hello World!!!") ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a};\x0d\x0a\x0d\x0aclass B{\x0d\x0a\x0d\x0aprivate A a = null ;\x0d\x0a\x0d\x0apublic B(A a){\x0d\x0a\x0d\x0athis.a = a ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublic void fun(){\x0d\x0a\x0d\x0athis.a.hello() ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a};\x0d\x0a\x0d\x0apublic class OODemo40{\x0d\x0a\x0d\x0apublic static void main(String args[]){\x0d\x0a\x0d\x0aA aa = new A() ;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a};
分享文章:java中代碼this java中代碼中怎么調用jar命令
文章網址:http://vcdvsql.cn/article4/ddeehie.html
成都網站建設公司_創新互聯,為您提供Google、域名注冊、企業網站制作、外貿建站、微信公眾號、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯