導航:首頁 > 編程語言 > javathisclass

javathisclass

發布時間:2023-01-16 16:12:49

java中this的用法

一、指自己所在的對象。
比如在一個方法中,調用其他對象的變數或方法時,可以使用那個對象的對象名,比如aa.abc();
而調用自己所在對象的方法或變數時,不知道別人給起了什麼名,所以直接用this.abc()就可以了。
二、看一個小例子中「this」的用法!

/**

* @author feng-neusoft

*

* 本示例為了說明this的三種用法!

*/

package test;

public class ThisTest {

private int i=0;

//第一個構造器:有一個int型形參

ThisTest(int i){

this.i=i+1;//此時this表示引用成員變數i,而非函數參數i

System.out.println("Int constructor i——this.i: "+i+"——"+this.i);

System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));

//從兩個輸出結果充分證明了i和this.i是不一樣的!

}

// 第二個構造器:有一個String型形參

ThisTest(String s){

System.out.println("String constructor: "+s);

}

// 第三個構造器:有一個int型形參和一個String型形參

ThisTest(int i,String s){

this(s);//this調用第二個構造器

//this(i);

/*此處不能用,因為其他任何方法都不能調用構造器,只有構造方法能調用他。

但是必須注意:就算是構造方法調用構造器,也必須為於其第一行,構造方法也只能調

用一個且僅一次構造器!*/

this.i=i++;//this以引用該類的成員變數

System.out.println("Int constructor: "+i+"/n"+"String constructor: "+s);

}

public ThisTest increment(){

this.i++;

return this;//返回的是當前的對象,該對象屬於(ThisTest)

}

public static void main(String[] args){

ThisTest tt0=new ThisTest(10);

ThisTest tt1=new ThisTest("ok");

ThisTest tt2=new ThisTest(20,"ok again!");

System.out.println(tt0.increment().increment().increment().i);

//tt0.increment()返回一個在tt0基礎上i++的ThisTest對象,

//接著又返回在上面返回的對象基礎上i++的ThisTest對象!

}

}

運行結果:

Int constructor i——this.i: 10——11

String constructor: ok

String constructor: ok again!

Int constructor: 21

String constructor: ok again!

14

細節問題注釋已經寫的比較清楚了,總結一下,其實this主要要三種用法:

1、表示對當前對象的引用!

2、表示用類的成員變數,而非函數參數,注意在函數參數和成員變數同名是進行區分!其實這是第一種用法的特例,比較常用,所以那出來強調一下。

3、用於在構造方法中引用滿足指定參數類型的構造器(其實也就是構造方法)。但是這里必須非常注意:只能引用一個構造方法且必須位於開始!

還有就是注意:this不能用在static方法中!所以甚至有人給static方法的定義就是:沒有this的方法!雖然誇張,但是卻充分說明this不能在static方法中使用!

❷ Java里的this問題

this只Student3這個對象。

public Student3(String name,int age,int classNum){
this.name=name;
this.age=age;
this.classNum=classNum;
}

這裡面因為有兩個name,為了區分,this.name就是Student3的一個屬性,而這個構造方法里的name是傳過來的name。

可以這樣去理解:
public Student3(String name1,int age1,int classNum1){
//這樣就不存在一個name對應參數列表的值和類的屬性值,就不用 this指定了。在這里推薦寫成原文的形式,用this代表Student3這個類,當然也可以寫成Student3.name = name1
name=name1;
age=age1;
classNum=classNum1;
}
當調用new Student3("zhangsan", 10, 1);時,會把Student的name屬性,age屬性,classNum屬性賦成相應值。

❸ 在java中類名.this得到的是什麼

你這個問題應該是問在3g平台下面把,那麼得到的是上下文對象-context。在j2se得到是當前類的一個對象

❹ 關於JAVA中this關鍵字的用法問題

你要知道a1對象裡面的name是a1,a2對象裡面的name是a2,
A a1=new A("a1"); 生成一個a1對象的同時調用構造方法name=a1
a1.func2(); 調用a1對象裡面的func2方法,當前對象為a1
A a2=new A("a2"); 生成一個a2對象的同時調用構造方法name=a2
this.func1(); this表示當前對象,this.func1();也就是當前對象的func1方法。就是a1的func1方法。輸出的當然func1 of a1 is calling
a2.func1(); 指明為a2的func1()
輸出的當然func1 of a2 is calling

❺ Java:關於Java中的this,這里為什麼加不加都一樣呢

this是指的對象本身,通過this可以調用本對象擁有的所有方法和屬性,當然不加this也可版以調用。

一般用this的情權況:

  1. 當局部變數與成員變數相同名時,例如 this,x = x;this.x 是個成員變數,而x是個局部變數

  2. 在myeclipse下用this可以提示後面的方法或者成員變數

  3. 在內部類或匿名內部類中使用this來指向內部類本身

  4. 將類本省作為參數傳遞

❻ java中的this語句

java中this有兩種用法:
1、代表當前類
public class Dog{
private String name;
private float age;
public setName(String name){
this.name = name;
}
.......
}
這里的this就代表的當前的這個Dog類。this.name可以理解為dog.name,只是理解,不是等於。
2、在構造函數中的使用
public class Dog{
private String name;
private int age;
//有一個參數的構造函數
public Dog(String name){
this.name = name;
}
public Dog(String name,int age){
this.name = name;
this.age = age;
}
//這個無參構造方法里調用的有兩個參數的構造方法,這個也就是this的第二種用法了!
public Dog(){
this("nihao",20);
}
}

❼ 關於java this.getClass();

Java的每個類都帶有一抄個運行時襲類對象,該Class對象中保存了創建對象所需的所有信息。
可以用.class返回此 Object 的運行時類Class對象,也可以用getClass()獲得。
獲得此對象後可以利用此Class對象的一些反射特性進行操作,
例如:
this.getClass().newInstance(); //用預設構造函數創建一個該類的對象
this.getClass().getInterfaces(); //獲得此類實現的介面信息
this.getClass().getMethods();//獲得此類實現的所有公有方法

Class.forName(" ... JDBC driver class name...."); // Class類的靜態方法forName, 向DiverManager注冊這個JDBC driver類

❽ java的.class和.this是什麼什麼是封閉類為什麼只有封閉類才可以使用.this

你可以這樣理解,.this是指當前運行時實例化的這個特定對象,因為只有封裝的類才能實例化出對象,所以是有封裝類才能使用.this;.class是運行時這個實例化對象的類信息,用於反射

❾ 誰能系統的講解一下JAVA里this的性質和用法

this關鍵字是對一個對象的默認引用。this關鍵字用來表示以後調用當前方法的對象的引版用。
Ø 使用this調用權成員變數,解決成員變數和局部變數的同名沖突
Ø 使用this調用成員方法
Ø 使用this調用重載的構造方法,只能在構造方法中使用,必須是構造方法的第一條語句

❿ Java 單例模式同步鎖this與Class的區別

synchronized(this) 表示的是所有線程需要排隊獲取當前類的實例的鎖;而 synchronized(xxx.class) 表示的是所有線程內需要排隊獲容取當前類的鎖;區別就在於 this 是一個實例,而 xxx.class 是一個整個的 class 信息。

閱讀全文

與javathisclass相關的資料

熱點內容
電腦如何連接藍牙網路 瀏覽:793
篩選後如何計算復雜數據 瀏覽:287
如何把不同品牌的手機數據導出 瀏覽:393
日歷資料庫表的設計 瀏覽:761
代碼如何快速做金字塔數據 瀏覽:775
文件異地同步軟體 瀏覽:383
微信網頁版自動登錄 瀏覽:370
excel如何分開男女數據 瀏覽:883
帝豪gl怎麼打開u盤文件夾在哪裡 瀏覽:477
蘋果皮能用流量嗎 瀏覽:548
電腦寬頻連接共享wifi密碼 瀏覽:655
最新微粒貸app官方下載 瀏覽:923
win10電腦怎麼休眠不斷網 瀏覽:530
如何查到網站的伺服器 瀏覽:225
編程怎麼確定一個數的位數 瀏覽:362
如何安裝ae腳本文件夾 瀏覽:914
商品驗偽用什麼APP查 瀏覽:350
請問大數據與會計專業做什麼的 瀏覽:77
如何修改數據上年結轉 瀏覽:6
win7一直配置文件重啟 瀏覽:124

友情鏈接