JAVA基础:Object类(重写equals和toString方法)

痛定思痛。 2022-05-08 08:14 349阅读 0赞

/*
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 检验:方法重写是否符合规范,若不符合会报错。
*/

  1. public class TestObject03 {
  2. public static void main(String[] args) {
  3. Student s1 = new Student();
  4. s1.name = "路云华";
  5. s1.age = 30;
  6. //System.out.println(s1.toString());//我叫XXX,今年XX岁
  7. System.out.println(s1);//下面这种写法其实就是默认调用toString
  8. Student s2 = new Student("王国君",3,'男');
  9. Student s3 = new Student("王国君",3,'男');
  10. Student s4 = new Student("王国君",3,'男');
  11. Student s5 = new Student("王国君",3,'男');
  12. System.out.println(s2==s3);// == 比较的是内存地址
  13. System.out.println(s2.equals(s3));
  14. String str = "123";
  15. String str1 = "123";
  16. System.out.println(str.equals(str1));
  17. }
  18. }
  19. class Student {
  20. String name;
  21. int age;
  22. char sex;
  23. public Student(){
  24. }
  25. public Student(String name,int age, char sex){
  26. this.name = name;
  27. this.age = age;
  28. this.sex = sex;
  29. }
  30. //重写toString方法
  31. @Override//检查下面的方法是否是重写的
  32. public String toString() {
  33. return "我叫"+name+",今年"+age+"岁";
  34. }
  35. //重写equals方法
  36. @Override
  37. public boolean equals(Object o){
  38. if(this==o){
  39. return true;
  40. }
  41. if(o instanceof Student){
  42. Student s = (Student) o;
  43. if(s.name.equals(this.name)&&s.age==this.age&&s.sex==this.sex){
  44. return true;
  45. }
  46. }
  47. return false;
  48. }
  49. }

发表评论

表情:
评论列表 (有 0 条评论,349人围观)

还没有评论,来说两句吧...

相关阅读