我一直在使用多种方法,但我的“java the complete reference”一书并没有很好地解释如何使用“this”关键字。
答案 0 :(得分:1)
这在java中
它用于在envoked方法或构造函数中引用对象的数据成员,以防字段和局部变量之间存在名称冲突
public class Test {
String s;
int i;
public Test(String s, int i){
this.s = s;
this.i = i;
} }
它用于从同一个类的另一个构造函数中调用一个构造函数,或者你可以说构造函数链接。
public class ConstructorChainingEg{
String s;
int i;
public ConstructorChainingEg(String s, int i){
this.s = s;
this.i = i;
System.out.println(s+" "+i);
}
public ConstructorChainingEg(){
this("abc",3); // from here call goes to parameterized constructor
}
public static void main(String[] args) {
ConstructorChainingEg m = new ConstructorChainingEg();
// call goes to default constructor
}
}
它还有助于方法链接
class Swapper{
int a,b;
public Swapper(int a,int b){
this.a=a;
this.b=b;
}
public Swapper swap() {
int c=this.a;
this.a=this.b;
this.b=c;
return this;
}
public static void main(String aa[]){
new Swapper(4,5).swap(); //method chaining
}
}
答案 1 :(得分:0)
这是一对夫妇:
public class Example {
private int a;
private int b;
// use it to differentiate between local and class variables
public Example(int a, int b) {
this.a = a;
this.b = b;
}
// use it to chain constructors
public Example() {
this(0, 0);
}
// revised answer:
public int getA() {
return this.a;
}
public int getB() {
return this.b
}
public int setA(int a) {
this.a = a
}
public void setB(int b) {
this.b = b;
}
}
this
指的是属于使用this
的对象的属性。例如:
Example ex1 = new Example(3,4);
Example ex2 = new Example(8,1);
在这些情况下,ex1.getA()
将返回3,因为this
指的是属于名为a
的对象的ex1
,而不是ex2
或其他任何东西。 ex2.getB()
也是如此。
如果您查看setA()
和setB()
方法,则使用this
将属于该对象的属性a
和b
与参数名称区分开来他们是一样的。