Object類

Object類是java中所有類的超類(根類)。

如:class A extends B

        class A

在根類中有幾個方法是經常用到的,如hashCode,equals,toString等。

例如:

public class TextObject {
	public static void main(String[] args) {
		Student student = new Student("Kit", 21, false, "China");
		System.out.println(student);//這裏要想運行成功,必須重寫toString方法
		Student compare = new Student("Kit", 21, false, "China");
		Student compare1 = new Student("www", 43, true, "Americon");
		System.out.println(compare.equals(student));
		System.out.println(compare1.equals(student));
	}
}

class StudentMessage {
	public StudentMessage() {
		name = "sky";
		age = 22;
		sex = true;
		address = "China";
	}
	
	public StudentMessage(String name, int age,
			boolean sex, String address) {
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.address = address;
	}
	
	public String getName() {
		return name;
	}

	public int getAge() {
		return age;
	}

	public boolean isSex() {
		return sex;
	}

	public String getAddress() {
		return address;
	}

	private String name;
	private int age;
	private boolean sex;
	private String address;
}

class Student extends StudentMessage {
	public Student(String name, int age, boolean sex, String address) {
		super(name, age, sex, address);
	}
	
	public String toString() {//這裏重寫了Oject類的toString方法
		return this.getName() + " " + this.getAge() + " "
				+ this.isSex() + " " + this.getAddress();
	}
	
	public boolean equals(Object obj) {//重寫Oject類的equals方法
		if (this == obj) return true;
		if (obj == null) return false;
		if (obj instanceof Student) {
			Student s = (Student) obj;
			return s.getAddress() == this.getAddress() && s.isSex() == this.isSex()
					&& s.getAge() == this.getAge() && s.getName() == this.getName();
		}
		else return false;
	}
}


在toString中,如果想在將類型名打印出來(如Student),可這樣做:student.getClass().getName(),得到的將會是Student;

在equals方法中,第一,我們要判斷是不是同一對象;第二,判斷是不是被比較的對象爲空;第三,判斷兩對象的內部是否相同。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章