String类也有equals方法,该方法是比较字符串的内容(equals方法,默认被String类重写了)

重写Object类中的equals方法,快捷键:
然后一直点击next即可
最后删除重写的hashCode方法
package com.itheima.d9_api_object;/*** 目标:掌握Object类中equals方法的使用*/public class Test2 {public static void main(String[] args) {Student s1 = new Student("lxc",'男',19);Student s2 = new Student("lxc",'男',19);// 虽然s1和s2有有参构造器的内容一样,但是他们是两个新对象,都在堆内存中开辟了空间// 内存地址不一样// equals默认比较2个对象的地址是否相同System.out.println(s1.equals(s2)); // flase对象地址不一样System.out.println(s1 == s2); // == 也是比较地址// 重写了equals方法,再次运行比较的就是对象内容}}
package com.itheima.d9_api_object;import java.util.Objects;public class Student { // extends Object 默认继承了Object类private String name;private char sex;private int age;public Student() {}public Student(String name, char sex, int age) {this.name = name;this.sex = sex;this.age = age;}@Overridepublic boolean equals(Object o) {// 官方定义的重写equals方法,用来比较内容// 1.判断是否是同一个对象比较,如果是返回trueif (this == o) return true;// 2. 如果0是null返回false 如果o不是学生类型返回false ...Student != ..Pigif (o == null || getClass() != o.getClass()) return false;// 3.说明o 一定是学术类而且不为nullStudent student = (Student) o;return sex == student.sex && age == student.age && Objects.equals(name, student.name);}/*** 自己重写equals方法,自己定制相等规则,* 两个对象的内容一样就认为是相等的* s1.equals(s2)* 比较者:s1 == this* 被比较者: s2 ==》 o* Object是祖宗类,可以传任何类型的对象* 可以理解为所有的类都默认被Object继承,所以定义方法传参参数类型是* Object o 代表可以接收所有的对象*/// @Override// // 这里传入的参数,就是要比较的对象,然后进行强转// public boolean equals(Object o){ // Object是祖宗类,可以传任何类型的对象// // 判断o是不是学生类型// if (o instanceof Student){// // 上面判断出是学生类型则将o(传入的对象)强转为学生类// // 由于要比较的对象o没有name成员,所以进行强转,可以调用name成员// Student s2 = (Student) o;// // 2.判断2个对象的内容是否一样// // 这里的this代表s1,因为是s1这个对象调用的equals方法// if (this.name.equals(s2.name) && this.age == s2.age// && this.sex == s2.sex){// // name 成员这里是字符串引用类型,所以比较内容用equals,age是基础类型// // 所以用 ==// return true;// }else {// return false; // 如果该对象成员不一样则返回false// }// }else {// // 学生只能和学生比,否则返回一个false// return false;// }// }// 这里用快捷键的方法操作:@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", sex=" + sex +", age=" + age +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}public char getSex() {return sex;}public void setSex(char sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
