1. 程式人生 > >API概述以及Object類的概述

API概述以及Object類的概述

API概述以及Object類的概述

API概述

  API(Application Programing Interface 應用程式介面),我們通過這個介面直接呼叫那些已經封裝好的類,這些類我們並不需要知道如何實現它,只需要知道如何去呼叫它就好。

Object類的概述

  Object類是類的根類,就算你不寫出來,系統都是會隱藏的加上的,所有類都會間接或直接的繼承自該類。

Object類的常用方法

在這裡插入圖片描述

程式碼演示

public class Equals {
    public Equals() {
        System.out.println("我是建構函式");
    }
    public static void main(String[] args) {
        int a=100;
        int b=200;
        Equals e = new Equals();//建立物件e
        Equals ee = new Equals();//建立物件ee
        Equals eee=e;
        
        //通過toString可以打印出這三個物件的地址,發現e和eee相同,因為引用相同
        System.out.println(e.toString());
        System.out.println(ee.toString());
        System.out.println(eee.toString());
        //輸出雜湊值,不同物件雜湊值不同
        System.out.println(e.hashCode());
        System.out.println(ee.hashCode());
        System.out.println(eee.hashCode());
        //得到class 包名.類名,這裡相同,因為是在同一類和包下編寫的程式碼
        System.out.println(e.getClass());
        System.out.println(ee.getClass());
        System.out.println(eee.getClass());
        
        System.out.println(a==b);
        System.out.println(e==ee);
        
        //new出來的物件會開闢新的空間,因此地址(引用)不同
        System.out.println(e.equals(ee));
        System.out.println(e.equals(a));
        System.out.println(e.equals(b));
        //把e的引用(地址)賦給eee,因此兩個物件相等
        System.out.println(e.equals(eee));
        //        System.out.println(a.equals(b));出錯,因為需要物件引用該方法
    }
}

結果

我是建構函式
我是建構函式
[email protected]
[email protected]
[email protected]
1163157884
1956725890
1163157884
class org.ji10.code.Equals
class org.ji10.code.Equals
class org.ji10.code.Equals
false
false
false
false
false
true

記憶體圖

在這裡插入圖片描述
  根據上圖可知一共開闢了兩個空間,因為第三個物件eee是把第一個物件的引用(地址)賦給了它,因此它們兩個指向的是同一個空間,用equals比較時會返回true。