物件 與 類別


Java是以物件導向為主的程式語言,所以搞清楚物件導向的邏輯將是學習Java最重要的一件事。

1 物件的觀念

物件的觀念其實在日常生活中很容易看到,以車子製造商為例:

  • 車子就是一個類別
  • 一輛車會擁有許多不同的特徵,例如大小、名稱、座椅、方向盤、顏色等...
  • 一輛車會擁有許多不同的功能,例如煞車、加速、打方向燈等

把這些轉換成虛擬碼來想像的話

車子{
    屬性:
        名稱:
        大小:
        方向盤:
        顏色:
    功能:    
        煞車()
        加速()
        打方向燈()    
}

每輛車的特徵和功能有可能相同也可能不同,以車這個類別來說,就有跑車、休旅車、一搬家用車、公車等...,這些就稱為物件,他們分別有屬於自己的屬性和功能,但他們都同屬於 車子 這個類別

Object又被稱為class的Instance,class就像是一張設計圖,而Object就像按照設計圖實做出來的Instance

如果了解了class與Object的觀念後,接下來我們就要知道程式碼該如何撰寫

2 宣告類別、物件

modifier class ClassName{
    ....    
}

modifier為修飾字,有public、private等,之後會再詳細介紹

2-1 類別的構成
  • 建構子
  • 變數 (屬性、特徵)
  • 方法 (功能)
//PURPOSE:建立一個汽車物件
public class Car {

    //變數
    private String name; 
    private String color;

    //建構子
    public Car(){
        name="car";
        color="black";
    }
    public Car(String n,String c){
        name=n;
        color=c;
    }

    //方法
    public void car_break(){
        System.out.println(name+"煞車中");
    }
    public void Speed_up(){
        System.out.println(name+"加速中");
    }
}
2-2 constructor

在上述Class Car中,可以看到有一個function名稱與Class名稱相同,而且它並沒有設定它的返回值屬性,這就稱為一個類別的建構子(Constructor)

public Car(){
    name="car";
    color="black";
}
public Car(String n,String c){
    name=n;
    color=c;
}

建構子會在我們用new來建構一個物件實體時被呼叫,編譯器會按照你傳遞的參數,來選擇要使用哪個建構子。

若沒特別撰寫建構子的話,會呼叫到Java自動產生的預設建構子

若我們建立了自己設定的建構子,即使沒有要用到預設建構子,也建議寫一個預設建構子

2-3 建立物件
//PURPOSE:建立類別為車的計程車物件
//以下兩個不同物件產生,會呼叫不同的建構子
Car taxi=new Car();
Car taxi=new Car("Taxi","yellow");
2-4 呼叫方法
ObjectName.functionName( parameter );
taxi.car_break();
-----------------
Taxi煞車中
2-5 我們早已用過的類別Scanner

由此處可以看出,之前我們也常常在不了解class的狀況下就使用了他,例如最常被使用的scanner

Scanner s = new Scanner(System.in);

其實我們就是在建立一個Scanner類別的物件,名叫s

int i=s.nextInt();

這就是在使用class Scanner內建的method來存取使用者輸入的值

如果忘記類別要如何使用,可以回想一下過去使用Scanner的方式

results matching ""

    No results matching ""