編程:
定義四個類:
Person類: 包含name和id屬性,訪問型別為public;
兩個構造方法:一個無參構造方法、一個有兩個引數的構造方法,用于給兩個成員變數賦值;
包含equals()和toString(),其中equals()用來比較兩個Person物件的值是否一致,即:name和id的值是否相等;
Student類,繼承Person類,并包含sid(學號)屬性,訪問型別為public;
兩個構造方法:一個無參構造方法、一個有三個引數的構造方法,用于給三個成員變數賦值;
包含equals()和toString(),其中equals()用來比較兩個Student物件的值是否一致,即:name、id和sid的值是否相等;
Teacher類,繼承Person類,并包含tid(教工號)屬性,訪問型別為public;
兩個構造方法:一個無參構造方法、一個有三個引數的構造方法,用于給三個成員變數賦值;
包含equals()和toString(),其中equals()用來比較兩個Teacher物件的值是否一致,即:name、id和tid的值是否相等;
Test類,包含main(),其中分別宣告、創建并初始化Person、Student和Teacher的兩個物件,首先呼叫toString()分別輸出以上各個物件,然后呼叫equals()測驗是否可以進行物件值的比較。
uj5u.com熱心網友回復:
1.Person類
public class Person {
private Integer id;
private String name;
public Person() {}
public Person(Integer id, String name) {
this.id = id;
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + "]";
}
}
2.Student類
public class Student extends Person{
private Integer sid;
public Student() {}
public Student(Integer id, String name, Integer sid) {
super(id,name);
this.sid = sid;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (sid == null) {
if (other.sid != null)
return false;
} else if (!sid.equals(other.sid))
return false;
return true;
}
@Override
public String toString() {
return "Student [sid=" + sid + "]";
}
}
3.Teacher類
public class Teacher extends Person{
private Integer tid;
public Teacher() {}
public Teacher(Integer tid,Integer id,String name) {
super(id,name);
this.tid = tid;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
Teacher other = (Teacher) obj;
if (tid == null) {
if (other.tid != null)
return false;
} else if (!tid.equals(other.tid))
return false;
return true;
}
@Override
public String toString() {
return "Teacher [tid=" + tid + "]";
}
}
4.Test類
public class Test {
public static void main(String[] args) {
Person stu = new Student(1,"stu",1);
Person tea = new Teacher(2,"tea",2);
System.out.println("stu:"+stu.toString()+",tea:"+tea.toString());
//stu:Student [sid=1],tea:Teacher [tid=2]
System.out.println(stu.equals(tea));//false
}
}
說明:Student和Teacher可進行比較,因為他們都繼承自Person,存在可比性,但由于二者在創建時是不同的物件,所有比較結果為false.代碼你可以自己測驗一下,理解相關語法,記憶體存盤等。
重要:閑來無聊幫你寫一下這個直譯的作業,而且給得分也挺多,哈哈。好好學習,加油吧。記得結帖給分呀
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/124616.html
標籤:Java相關
上一篇:java自學真的很難嗎?
