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

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



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


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


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


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


建立物件後,也可以利用句點運算子可以存取或設定數值給屬性,例如
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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();
    }
}
 
/* 《程式語言教學誌》的範例程式
    檔名:JungleDemo1.java
    功能:示範物件導向的基本觀念
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



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


同樣的,第 27 行與第 28 行亦同。
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 ?