JAVA基础:Object类(重写equals和toString方法)
/*
Object类:为所有类的默认根类(基类)
* 1.toString方法:输出当前对象地址
* 如a=new();
* printf(a)与print(a.toString)相同 输出地址。
* 注意:可对toString方法重写,返回想要的值
* 2.equals方法:比较内容
* 如a=new(“1”,”2”,”3”);
* b=new(“1”,”2”,”3”);
* 如何比较a,b相同?a.equals(b)? (错误)
* 需要对equals重写: 比较内容(重写eqals方法的作用是设置你要比较的内容运用if return)
*
*
* 那么举一反三 String a=”“;
* String b=”“;
* 为何可以直接用 a.equals(b)呢?因为String已经对equals进行了重写
* 方法上加:@Override 检验:方法重写是否符合规范,若不符合会报错。
*/
public class TestObject03 {
public static void main(String[] args) {
Student s1 = new Student();
s1.name = "路云华";
s1.age = 30;
//System.out.println(s1.toString());//我叫XXX,今年XX岁
System.out.println(s1);//下面这种写法其实就是默认调用toString
Student s2 = new Student("王国君",3,'男');
Student s3 = new Student("王国君",3,'男');
Student s4 = new Student("王国君",3,'男');
Student s5 = new Student("王国君",3,'男');
System.out.println(s2==s3);// == 比较的是内存地址
System.out.println(s2.equals(s3));
String str = "123";
String str1 = "123";
System.out.println(str.equals(str1));
}
}
class Student {
String name;
int age;
char sex;
public Student(){
}
public Student(String name,int age, char sex){
this.name = name;
this.age = age;
this.sex = sex;
}
//重写toString方法
@Override//检查下面的方法是否是重写的
public String toString() {
return "我叫"+name+",今年"+age+"岁";
}
//重写equals方法
@Override
public boolean equals(Object o){
if(this==o){
return true;
}
if(o instanceof Student){
Student s = (Student) o;
if(s.name.equals(this.name)&&s.age==this.age&&s.sex==this.sex){
return true;
}
}
return false;
}
}
还没有评论,来说两句吧...