6-50 重写父类方法equals分数 10
在类Student中重写Object类的equals方法。使Student对象学号(id)相同时判定为同一对象。
函数接口定义:
在类Student中重写Object类的equals方法。使Student对象学号(id)相同时判定为同一对象。
裁判测试程序样例:
import java.util.Scanner;
class Student {
int id;
String name;
int age;
public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
/* 请在这里填写答案 */
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Student s1 = new Student(sc.nextInt(),sc.next(),sc.nextInt());
Student s2 = new Student(sc.nextInt(),sc.next(),sc.nextInt());
System.out.println(s1.equals(s2));
sc.close();
}
}
输入样例:
1001 Peter 20
1001 Jack 18
输出样例:
true
以下是答案
import java.util.Scanner;
public class Pta_6_50 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
Student50 s1 = new Student50(sc.nextInt(),sc.next(),sc.nextInt());
Student50 s2 = new Student50(sc.nextInt(),sc.next(),sc.nextInt());
System.out.println(s1.equals(s2));
sc.close();
}
}
//这个包下有Studen了用Student50代替
class Student50{
int id;
String name;
int age;
public Student50(int id,String name,int age){
this.id=id;
this.name=name;
this.age=age;
}
//以下是答案,这里需要覆写equals
public boolean equals(Object obj){
if(this==obj) {
return true;//如果是一个对象,返回true
}
if(obj ==null||getClass()!=obj.getClass()) {//如果不是一个类型返回false
return false;
}
Student50 other = (Student50) obj;
return this.id==other.id;
}
}