閱讀76 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go Com編程入門——什麼是COM,如何使用COM
  下一篇:go 名企招聘信息