java.lang.String中equals方法重写

下面代码:要求重写方法,搞了好久没搞出帮个忙classStudentextendsjava.lang.Object{privateStringmName;privatei... 下面代码: 要求重写方法,搞了好久没搞出帮个忙class Student extends java.lang.Object{ private String mName; private int mAge; private String mSex; public Student(String name, int age, String sex) { mName = name; mAge = age; mSex = sex;}public String getMName() { return mName;}public void setMName(String name){ mName = name;}public int getMAge() { return mAge;}public void setMAge(int age) { mAge = age;}public String getMSecx() { return mSex;}public void setMSecx(String secx){ mSex = secx;}public String toString(){ return "姓名是:"+this.mName+",性别是:"+this.mSex+",年龄是:"+this.mAge;}public boolean equals(Object obj){ if() { return true; } else { return false; }}}/**测试类*/public class StudentTest { public static void main(String[] args) { Student std =new Student("张三",19,"男"); Student std1 =new Student("张三",19,"男"); if(std.equals(std)) { System.out.println("相同的对象"); } else { System.out.println("不同的对象"); } System.out.println(std); System.out.println(std1); }} 展开
 我来答
cxylmm
2011-10-19
知道答主
回答量:11
采纳率:0%
帮助的人:7.3万
展开全部
/**
1.this代表当前对象也就是下面操作此方法(equals)的std对象而stu代表的是传入对象也就是说是下面的std1对象.
2.在进行比较时候基本类型(int ,float....)比较相等时采用"=="是比较的地址。
3.在进行比较时候引用类型就像String采用equals比较。是比较的内容
**/
/**
个人觉得把equals()变成compare()这样更好。能从方法知道是操作的是对象的比较
**/
class Student extends java.lang.Object{
private String mName;
private int mAge;
private String mSex;
public Student(String name, int age, String sex) {
mName = name;
mAge = age;
mSex = sex;
}
public String getMName() {
return mName;
}
public void setMName(String name){
mName = name;
}
public int getMAge() {
return mAge;
}
public void setMAge(int age) {
mAge = age;
}
public String getMSecx() {
return mSex;
}
public void setMSecx(String secx){
mSex = secx;
}
public String toString(){
return "姓名是:"+this.mName+",性别是:"+this.mSex+",年龄是:"+this.mAge;
}
public boolean equals(Student stu){ //public boolean compare(Student stu){}
if(this.mName.equals(stu.mName)&&(this.mAge==stu.mAge)&&(this.mSex.equals(stu.mSex))){
return true;
}else {
return false;
}
}
}
public class StudentTest {
public static void main(String[] args){
Student std =new Student("张三",18,"男");
Student std1 =new Student("张三",18,"男");
if(std.equals(std1)){ //if(std.compare(std1))
System.out.println("相同的对象");
}else{
System.out.println("不同的对象");
}
System.out.println(std);
System.out.println(std1);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花浓花浅
2011-10-26 · TA获得超过348个赞
知道答主
回答量:104
采纳率:0%
帮助的人:47.4万
展开全部
equals比较的是是否是对同一个对象的引用
代码里的std与std1都是对对象池里的Student("张三",19,"男");的引用,所以返回true
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友69e86e3
2011-10-16 · 超过11用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:36.9万
展开全部
请格式化代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式