Java 快速導覽 - 物件導向概念 宣告及定義屬性

類別 (class) 中的屬性 (field) 為物件 (object) 專有的數值 (value) ,又被稱為成員變數 (member variable) ,可以是基本資料型態 (primitive data data) 的數值,也可以是其他物件。



屬性宣告 (declaration) 包含三個部份,有
  • 修飾子 (modifier) ,如 privatepublic ,也可以不加
  • 資料型態 (data type)
  • 識別字 (identifier) 名稱


下面 Animal 類別中有兩個屬性, int 型態的 age 與 weight
class Animal {
    int age;
    int weight;
    
    void speak() {
        System.out.println("哈囉,我已經" + age + "歲,有" + weight + "公斤重");
    }
}


下面 Elephant 類別繼承 (inherit) 自 Animal ,另外宣告了 String 型態的屬性 name
class Elephant extends Animal {
    String name;
    
    void speak() {
        System.out.println("我的名字是" + name + "已經" + age + "歲");
    }
}


屬性可以直接指派初值,例如
int age = 0;
int weight = 1;


建立物件後,也可以利用句點運算子可以存取或設定數值給屬性,例如
class Animal {
    int age;
    int weight;
    
    void speak() {
        System.out.println("哈囉,我已經" + age + "歲,有" + weight + "公斤重");
    }
}

class Elephant extends Animal {
    String name;
    
    void speak() {
        System.out.println("我的名字是" + name + "已經" + age + "歲");
    }

}

class JungleDemo1 {
    public static void main(String[] args) {
        Animal puppy1 = new Animal();
        puppy1.age = 12;
        puppy1.weight = 25;
        puppy1.speak();
        
        Elephant puppy2 = new Elephant();
        puppy2.age = 8;
        puppy2.weight = 1200;
        puppy2.name = "大象";
        puppy2.speak();
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:JungleDemo1.java
    功能:示範物件導向的基本觀念 
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



第 22 行與第 23 行,這裡直接透過句點運算子設定 age 與 weight 的值
puppy1.age = 12;
puppy1.weight = 25;


同樣的,第 27 行與第 28 行亦同。
puppy2.age = 8;
puppy2.weight = 1200;


中英文術語對照
類別class
屬性field
物件object
數值value
成員變數member variable
基本資料型態primitive data data
宣告declaration
修飾子modifier
資料型態data type
識別字identifier
繼承inherit






1 則留言:

JIMMY CHEN 提到...

Does 1200 need to be showed ?