當前位置:首頁 » 編程語言 » java內部類中的this

java內部類中的this

發布時間: 2023-01-26 14:52:21

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

this指直譯是「這個」,在java中指「當前的」。不管在哪裡,只要用到this,指的一定就是當前的這個對象。最常見的用法是在寫java bean中。比如下面的代碼

publicclassStudent{
privateStringname;
privateintage;
publicStudent(){}
publicStudent(Stringname,intage){
this();
this.setName(name);
this.age=age;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnthis.age;
}
}

上面的代碼是一個javabean。所謂的javabean就是一個類,這個類有一些屬性,方法只有這些屬性的Getter或者Setter(從Object類繼承的方法不算在此列)。
這個bean有兩個屬性,在構造器中為屬性賦值的時候寫的this.setName(name).意思是調用當前你創建的這個對象的Setter給這個對象的屬性賦值。而setName裡面的this.name=name;這一句,等號之前的this.name表示當前對象的name,也就是在類裡面定義的privateStringname這個變數,而等號之後的name表示從外界調用這個方法時候傳進來的參數。所以這句話的意思就是將外界傳來的字元串變數的值賦給當前對象的name屬性。
那麼構造器第一行的this()是做什麼的呢?這句話是調用當前這個對象的無參構造,就是調用上面的publicStudent(){}這個構造器。在這段代碼里this()體現不出來什麼作用。但是我們知道構造器的作用是在構造對象的時候給屬性賦值的。如果上面個無參構造裡面寫一些賦值語句的話那麼這里就可以避免代碼的重復了。但是請注意,調用this()的時候一定要寫在該方法的第一行,否則會報錯。
另外,this關鍵字不能使用在有static關鍵字修飾的方法和代碼塊裡面。因為static是這個類的所有對象共用的,而this指的只是當前這個對象的「私人」的一些東西,在屬性上面就沖突了。

⑵ JAVA中的this是什麼意思

java裡面this是指本身的意思,比如說在一個類裡面this就代表自己本身這個類

⑶ Java中的this關鍵字請舉個具體的例子來說明用它的好處

this
關鍵字表示的是當前類
比如
this.name
是指當前類的name屬性,有些時候可以用於區分同名屬性,如你在類里有個屬性為name,有個方法里也有個屬性叫name,你在該方法里使用this.name是指類屬性,直接使用name則是指方法的name屬性,這樣不會混淆;
可以用this.method()調用本類的method()方法;
可以調用父類的方法和屬性,比如你繼承了某個類,在該類中你不能直接看到父類的方法和屬性,你需要打開父類去查看他的方法和屬性,這樣比較麻煩,你可以直接用this.的方式查看到父類的方法和屬性;
使用this關鍵字調用類方法和屬性通常比較方便,比如你的類比較長,有時,你想調用某個方法或屬性,你又忘了它的名稱,直接使用this.的方式直接就能找到;
還有一點要注意,比如你有個類包含一個內部類,你在內部類使用this,則是指調用內部類的方法和屬性,此時this不能調用到外部類的方法及屬性。

⑷ java,類名.this

有時候,我們會用到一些內部類和匿名類。當在匿名類中用this時,這個this則指的是匿名類或內部類本身。這時如果我們要使用外部類的方法和變數的話,則應該加上外部類的類名。如下面這個例子:
public
class
A
{
int
i
=
1;
public
A()
{
Thread
thread
=
new
Thread()
{
public
void
run()
{
System.out.println("內部類run");
A.this.run();//調用外部類的run方法,輸出
外部類run
};
this.run();//調用內部類的run方法
thread.start();
}
public
void
run()
{
System.out.println("外部類run");
}
}
在上面這個例子中,
thread是一個匿名類對象,在它的定義中,它的run函數里用到了外部類的run函數。這時由於函數同名,直接調用就不行了。這時有兩種辦法,一種就是把外部的
run
函數換一個名字,但這種辦法對於一個開發到中途的應用來說是不可取的。那麼就可以用這個例子中的辦法用
外部類的類名加上this引用來說明要調用的是外部類的方法run。

⑸ java中this的含義

1、在一個類中,this可以表示該類的當前實例;例如:
public class Leaf {
private int i = 0;
Leaf increment() {
i++;
return this;
}
void print() {
System.out.println("i = " + i);
}
public static void main(String[] args) {
Leaf x = new Leaf();
x.increment().increment().increment().print();
}
} ///:~
2、若為一個類寫了多個構造器,那麼經常都需要在一個構造器里調用另一個構造器,以避免寫重復的代碼。這時可以使用this,例如:
//: Flower.java
// Calling constructors with "this"

public class Flower {
private int petalCount = 0;
private String s = new String("null");
Flower(int petals) {
petalCount = petals;
System.out.println(
"Constructor w/ int arg only, petalCount= "
+ petalCount);
}
Flower(String ss) {
System.out.println(
"Constructor w/ String arg only, s=" + ss);
s = ss;
}
Flower(String s, int petals) {
this(petals);
//! this(s); // Can''t call two!
this.s = s; // Another use of "this"
System.out.println("String & int args");
}
Flower() {
this("hi", 47);
System.out.println(
"default constructor (no args)");
}
void print() {
//! this(11); // Not inside non-constructor!
System.out.println(
"petalCount = " + petalCount + " s = "+ s);
}
public static void main(String[] args) {
Flower x = new Flower();
x.print();
}
} ///:~

而需要注意的是:在一個類A的內部類B中使用this它表示的並非是A.B的當前實例,而是A的當前實例;

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:583
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:877
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:572
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:758
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:674
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1001
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:245
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:104
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:796
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:702