10.2 Object類
阿新 • • 發佈:2018-08-25
名稱 mage 由於 實例 ring rgs lan lose pri
一、概述
a、在java中,所有的類都直接或間接繼承了java.lang.Object類。
b、Object類是比較特殊的類,它是所有類的父類,是java類層總的最高層類。
c、由於所有類都是Object子類,所以在定義類時,省略了extends Object關鍵字。
d、在Object類中主要包括clone()、finalize()、equals()、toString()等方法,其中常用的兩個方法是equals()和toString();
註意:Object類中的getClass()、notify()、notifyAll()、wait()等方法不能被重寫,因為這些方法被定義為final類型。
1、getClass()方法:返回對象執行時的Class實例,然後使用此實例調用getName()方法可以取得類的名稱
getClass().getName(); (也可以將getClass()方法與toString()方法聯合使用)
2、toString()方法:將一個對象返回為字符串形式,它會返回一個String實例。
a、在實際應用中通常會重寫toString()方法,為對象提供一個特定的輸出模式。
b、當這個類型自動轉化為字符串或與字符串連接時,將自動調用重寫的toString()方法。
例子10.3
1 public class ObjectInstance { 2 publicView CodeString toString() { //重寫toString()方法 3 return "在" + getClass().getName() + "類中重寫toString()方法!"; 4 } 5 public static void main(String[] args) { 6 System.out.println(new ObjectInstance()); //打印本類對象 7 } 8 }
3、equals方法:比較兩個對象的實際內容是否相等(而“==”是比較兩個對象的引用地址是否相等)
例子10.4
1 package aaaa; 2 class V{ 3 4 } 5 6 public class OverWriteEquals { 7 public static void main(String[] args) { 8 String s1 = "123"; //實例化兩個對象,內容相同 9 String s2 = "123"; 10 System.out.println(s1.equals(s2)); //使用equals()方法比較 11 System.out.println(s1==s2); 12 13 System.out.println("======================"); 14 15 V v1 = new V(); //實例化兩個V對象 16 V v2 = new V(); 17 System.out.println(v1.equals(v2)); //使用equals()方法比較 18 System.out.println(v1==v2); 19 } 20 }View Code
10.2 Object類