1. 程式人生 > >JAVA基礎——Object類和Class類

JAVA基礎——Object類和Class類

什麼是Object類

Object類是所有類根類,其中也有很多方法。

Object類中的方法:

equals方法:

物件1.equals(物件2) ————比較的是兩個物件的記憶體地址是否相同,返回boolean

發現其實equals方法有時候並不是我們想要的,我們想要的可能是比較兩個不同物件之間的資料是否相同。
因此我們可以對equals在子類中進行過載,如下

class Num
{
	int num;
	Num(int num)
	{
		this.num=num;
	}
	public boolean equals(Object obj) //這裡是個多型特性,向上轉型
	{
		if(obj instanceof Num)
		{
			Num x=(Num)obj;			//要和Num類內資料比較要強轉成Num類,向下轉型
			return this.num==x.num;
		}
		else 
			return false;
	}
}
class  ObjectDemo
{
	public static void main(String[] args) 
	{
		Num n1=new Num(4);
		Num n2=new Num(6);
		System.out.println(n1.equals(n2));
	
	}
}

toString方法:

物件.toString()————返回物件的所屬類@地址雜湊值
同樣如果想讓toString方法是我們想要的一些方法,也可以進行過載
以上僅僅是Object類中的一些方法而已。更多的參閱API

getClass方法:

物件.getClass()————返回是Class型別的物件。表示這個物件的所屬類,如n1的所屬類是Num;

這裡的Class類是一種新的類,具體見下文。

Class類:

在Java中,當我們編寫一個類,編譯完成後,會生成.class檔案,而這些class檔案也同樣有共性(如他們都有名稱,都有方法等等),我們把它抽取出來定義一個叫Class類。

其中Class類中有一個方法叫做getName().顧名思義返回物件的名稱,具體用法見下:

首先為了呼叫這個Class類中的方法,必然要建立Class類的物件,通過Object的getClass方法可以與我們自己建立的類聯絡起來:

   Num n1=new Num(4);
		Class c=n1.getClass();
		System.out.println(c.getName());	//返回的是Num