Java麵向對象高級--Object類
在Java中一切的類都是以繼承的關係存在的,
class Person{}
如果一個類在定義時,沒有明確指明繼承那個類,則默認繼承Object類。
class Person extends Object{}


class Demo{ // 定義Demo類,實際上就是繼承了Object類
};
public class ObjectDemo01{
public static void main(String args[]){
Demo d = new Demo() ; // 實例化Demo對象
System.out.println("不加toString()輸出:"+d) ;
System.out.println("加上toString()輸出:"+d.toString()) ;
}
};
以上代碼運行的結果:加不加toString()完成的功能都是一樣的。證明了對象在打印的時候一定會調用toString()方法,是默認調用的。
class Person{
private String name ; // 定義name屬性
private int age ; // 定義age屬性
public Person(String name,int age){
this.name = name ;
this.age = age ;
}
public String toString(){
return "姓名:" + this.name + ";年齡:" + this.age ;
}
};
public class ObjectDemo02{
public static void main(String args[]){
Person per = new Person("xiaowu",30) ; // 實例化Person
System.out.println("對象信息:" + per) ;
}
};

equals方法的主要功能是完成兩個對象的比較。
class Person{
private String name ; // 定義name屬性
private int age ; // 定義age屬性
public Person(String name,int age){
this.name = name ;
this.age = age ;
}
public boolean equals(Object obj){
if(this==obj){ // 地址相等
return true ; // 肯定是同一個對象
}
if(!(obj instanceof Person)){ // 不是Person對象
return false ;
}
Person per = (Person) obj ; // 向下轉型
if(per.name.equals(this.name)&&per.age == this.age){
return true ; // 依次比較內容
}else{
return false ;
}
}
public String toString(){
return "姓名:" + this.name + ";年齡:" + this.age ;
}
};
public class ObjectDemo03{
public static void main(String args[]){
Person per1 = new Person("xiaowu",30) ; // 實例化Person
Person per2 = new Person("xiaowu",30) ; // 實例化Person
System.out.println(per1.equals(per2)?"是同一個人!" : "不是同一個人!") ;
System.out.println(per1.equals("hello")?"是同一個人!" : "不是同一個人!") ;
}
};
Object類是所有類的父類,所有類的對象都可以使用Object接收,Object類不光可以接收對象,還可以接收任意的引用數據類型(類、接口、數組)。
使用Object接收接口實例:
interface A{
public String getInfo();
}
class B implements A{
public String getInfo(){ // 覆寫方法
return "Hello World!!!" ;
}
};
public class ObjectDemo04{
public static void main(String args[]){
A a = new B() ; // 向上轉型,為接口實例化
Object obj = a ; // 使用Object接收,向上轉型
A x = (A)obj ; // 向下轉型
System.out.println(x.getInfo()) ;
}
};
使用Object接收數組實例:
public class ObjectDemo05{
public static void main(String args[]){
int temp[] = {1,3,5,7,9} ; // 定義數組
Object obj = temp ; // 使用Object接收數組
print(obj) ;
}
public static void print(Object o){
if(o instanceof int[]){ // 判斷是否是整型數組
int x[] = (int[])o ;
for(int i=0;i<x.length;i++){
System.out.print(x[i] + "\t") ;
}
}
}
};
總結:

最後更新:2017-04-03 15:22:09