1. 程式人生 > >10.2 Object類

10.2 Object類

名稱 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     public
String toString() { //重寫toString()方法 3 return "在" + getClass().getName() + "類中重寫toString()方法!"; 4 } 5 public static void main(String[] args) { 6 System.out.println(new ObjectInstance()); //打印本類對象 7 } 8 }
View Code

技術分享圖片

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類