java中this調用方法
『壹』 java Eclipse 中 在類與方法調用中 (this)的用法
this表示類實例本身。抄
this的用法
1、表示對當前對象的引用!
public class A{
public A getA(){
return this;//表示獲取當前實例本身
}
}
2、表示類的成員變數,而非函數參數,注意在函數參數和成員變數同名是進行區分!
public class A{
privateint 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中this的用法問題
this是指對當前對象的引用,例如:
public class Demo{
int a;
public void setA(int a){
this.a = a;//右邊的a是setA中參數的a不是版Demo中的a 左邊的a 是指Demo中的a,這里的this就是為了區分a是誰的權a 這里也就是把右邊的a賦值給左邊
}
}
不理解的可以繼續追問
『叄』 java中,調用這個實例方法時用this.方法名,引用名.方法名都是合理的嗎
this是當前對象,引用不一定是當前對象
『肆』 java中this的使用方法
指代自身
例如
class A{
public int x;
public void y() {...}
}
這里this.x就指代A.x
this.y()就指代調用自身方法等於A.y
『伍』 在java中怎樣用this調用構造方法
for example:
public class YourClass{
String name;
String age;
public YourClass(String name){
this.name = name;
}
public YourClass(String name, String age){//重載的構造子
this(name);
this.age = age;
}
}
『陸』 java中一般方法里的this是代表調用本方法的對象,但是構造方法里的this代表的是什麼呢。
this代表你正在構造的對象。
publicclassTest{
publicTest(){
System.out.println(this.toString());
}
publicstaticvoidmain(String[]args){
Testobj=newTest();
System.out.println(obj.toString());
}
}
輸出的兩個字元串相同(後面的數字是對象地址),說明this和obj是同一個對象。
這里this就是正在構建的CommunicationDemo的對象,作為參數傳給Thread的構造函數。
內幕是:java對象的建立其實是在構造函數開始執行之前,就是說構造函數執行的時候,被構造的對象其實已經存在了,所以構造函數中可以用this引用當前被構造的對象進行處理(比如 this.name=「Jack」)。
『柒』 Java中this關鍵字與方法
就普通方法或者屬性而言,寫this和不寫this沒區別。
this主要是用來和super區分的。this調用本類的構造方法,super調用父類的構造方法。
『捌』 java關於this調用本類的方法
s是對Student對象實例的引用,運行代碼s.fun();因為Student類中沒有fun()這個方法。於是,程序去他的父類尋找。找到後,首先輸出「什麼玩意」,然後運行this.print();注意java中的關鍵字this在編譯的時候就確定了,它就代表定義時候的對象。(這點和javascript有很大不同)。因此,此時的this代表Person,接著運行Person中的print()方法,輸出結果就是「這是父類的方法」。但是,為什麼去掉private關鍵字結果又不一樣了呢?因為被private修飾的方法和屬性是不會被子類繼承的,如果是默認的許可權,子類也可以繼承到。於是,在父類運行this.print()時(即沒有關鍵字private修飾),它會去子類查找該方法是否被重寫,如果是,則調用子類方法;否則,執行父類的方法。
『玖』 java中this可以調用的方法嗎
可以來。this代表當前對象。舉個例子:源
class Student{
int a;
void a(){
System.out.println("a is run!");
};
void b(){
System.out.println(this.a);
this.a();
}
}
class Test{
public static void mian(String[] args){
Student stu = new Student();
System.out.println(stu.a);
stu.a();
stu.b(); //這里的執行結果和上面是一樣的
}
}
抱歉 排版好的,發出去就這樣有點怪,不知道怎麼回事