class Student
{
String name;
int age;
public boolean equals (Object obj)
{
Student st = null;
if(obj instanceof Student)
st =(Student)obj;
else
return false;
if(st.name==this.name&&st.age==this.age)
return true;
else
return false;
}
public static void main(String[] args)
{
Student p=new Student();
Student q=new Student();
p.name="xyz";
p.age=13;
q.name="xyz";
q.age=13;
if(p.equals(q))
System.out.println("p与q相等");
else
System.out.println("p与q不相等");
}
}
其中if(st.name=this.name&&st.age=this.age)这段语句是什么意思 还有就是this.name表示的是那个name 是什么意思啊
谁调用equals 方法this就是指的谁。
关于Object类的equals()方法的特点:
1) 自反性:对于非空引用x来说,x.equals(x)一定返回true;
2) 对称性:对于非空引用x和y来说,如果x.equals(y)返回true,那么y.equals(x)一定返回true;
3) 传递性:对于非空引用x、y和z来说,如果x.equals(y)返回true,并且y.equals(z)返......
答案就在这里:Java中的Object类
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
this指的是调用该方法的本对象,name就是类里面的属性
this指的就是调用equal这个方法的对象,st指的是你传给equal这个方法的student参数
例如:if(p.equals(q))
System.out.println("p与q相等");
这段代码里面p就是equal这个方法里的this,q就是st
你这个equal方法是用来判断两个类的属性是否相等