equals
常用方法
public boolean equals(另一个对象)
// 比较对象是否相等。默认比较地址值,重写可以比较内容,自动生成。
Student类(未改进)
package com.itheima.myobjectdemo1;
public class Student {
private String name;
private int age;
//空参构造:
//alt + insert 构造快捷键 Constructor
//按两下tab + 一个回车
//第一个tab 取消默认选择的name属性
//第二下tab 使Select None 背景变蓝
//最后按回车 构造无参构造
public Student() {
}
//有参构造:
//alt + insert +Constructor
//按住shift不要松 + 下键
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//alt + insert + 选择 Getter and Setter + +按住shift不要松 + 下键 回车
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Demo2类
public class demo2 {
public static void main(String[] args) {
Student s1 = new Student("zhangsan", 23);
Student s2 = new Student("zhangsan", 23);
System.out.println(s1 == s2); //false
//object类中的equal方法,底层也是用 == 号比较地址值。
System.out.println(s1.equals(s2)); // false
}
}
Student类(改进:重写equals方法)
package com.itheima.myobjectdemo1;
import java.util.Objects;
public class Student {
private String name;
private int age;
//空参构造:
//alt + insert 构造快捷键 Constructor
//按两下tab + 一个回车
//第一个tab 取消默认选择的name属性
//第二下tab 使Select None 背景变蓝
//最后按回车 构造无参构造
public Student() {
}
//有参构造:
//alt + insert +Constructor
//按住shift不要松 + 下键
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//alt + insert + 选择 Getter and Setter + +按住shift不要松 + 下键 回车
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
if (age != student.age) return false;
return Objects.equals(name, student.name);
}
}
hashcode暂时不用 可以删除
然后一直next 知道finish