class Main {
public static void main(String[] args) {
x p1=new x(1);
x p2=new x(2);
System.out.print(p1.fou(p2));
}
}
class x{
int a;
public x(int a){//构造器初始化属性a的值。
this.a=a;
}
public boolean fou(x n){//比较两个对象属性是否一致
if(this.a==n.a)//
//这里的this说是当前对象。到底是指什么,怎么理解
return true ;
else return false;
}
}
this是当前对象。
例如main方法中的
x p1 = new x(1);
x p2 = new x(2);
System.out.print(p1.fou(p2));
p1,p2都使用构造函数创建了对象,那么分别创建对象的时候中的this分别指创建的x类对象,即p1,p2。
p1.fou(p2);这时候p1调用了方法fou();那么这时候方法中的this就指p1对象。
首先,你要知道this是什么?
this表示当前对象的意思。
什么情况下需要用this?
当参数名和当前类属性名相同的时候,用this指代(用来区分)
开发过程中,往往按义取名来定义参数名称,所以容易出现方法的参数名和类的属性名一致的情况,
为了区分开相同参数名属于类还是属性方法形参,所以引入this,用来指代。
如果不想用this,可以修改方法的参数名,只要跟类中的属性名不一致即可。
你得问题中的this指的是当前对象,也就是说调用fou方法的那个对象
以代码里的来说,this指的是当前对象,也就是p1
this就是指你当前x的对象,也就是你fou方法传进来的一个x对象把属性a赋值给你当前的x对象的a属性
this 这,这个
p1.fou() p1的fou()方法,this 指的就是 p1
我抽象一下,类相当于一张身份证,new一个对象相当于复印一张身份证复印件,每一个对象都有自己的this,谁调用就表示谁
this 这个,当前这个,谁用就是指的谁
调用fou函数的时候 会执行到那行代码,所以谁调用,这里的this 当前对象就指得是谁。
在这个代码里,Main类中执行 p1.fou(p2),也就是说p1调用了这个方法,所以 this就是p1, 方法中的n 就是 传入的参数p2
当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量
参考一下c语里面的指针
obj.func()相当于func(obj)
而func中this就相当于参数obj
this.当前类中的成员变量
this是Java中的关键字,总是指向调用该方法的对象。
this作为对象的默认引用有两种情形:
```java
public class Main {
public static void main(String[] args) {
X p1 = new X(1);
X p2 = new X(2);
System.out.println(p1.fou(p2));
}
}
class X{
int a;
//这是一个构造方法,就是X类创建对象时调用的。
public X(int a) {
this.a = a;//这里的this就是指构造器正在初始化的对象。
}
public boolean fou(X n){
if(this.a==n.a)// 这里的this就是指调用该方法的对象。在本例中,我们在主函数创建的对象p1,调用fou这个函数时,此时this就是指p1这个对象。
return true;
else
return false;
}
}
```
肯定用对象调用方法,这个类实例化对象出来,哪个类的对象在调用,this肯定就是这个类的这个对象呗