Pages

2008/08/30

[Java] Primitive Wrapping Classes 與 Primitive Data Type

在宣告一個變數時,
可以用基本資料型態(Primitive Data Type)定義變數的資料型態,
也可以透過基本資料物件(Primitive Wrapping Classes)宣告變數的資料型態.
基本資料型態(Primitive Data Type)與基本資料物件(Primitive Wrapping Classes)
Primitive Data Type Primitive Wrapping Classes
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean


宣告i為整數時,
可以用下例兩種方式宣告,
  1. int i;
  2. Integer i;
在給定初始時, 也會有所不同, int可以直接使用 "="賦予 i一個初始值 10,
int i =10;
而Integer則有兩種方式,
  1. Integer i = new Integer(10);
  2. Integer i = 10;

第二種宣告方式是J2SE 5.0之後的版本才使用之方法,
透JVM的處理讓 10可以自動封裝(Autoboxing)為 Integer物件,
當然也可以將 10自動拆除(unboxing)為int基本資料型態.
Integer i = 10; // autoboxing
i.doubleValue(); //以物件方式使用
int j;
j = i; // unboxing

2008/08/29

[Java] 物件(objcet) 類別(class) 實體(instance)

何為物件?
真世界件中任何一事物都是物件(object), 人是一個物件, 桌子是一個物件, 車子也是一個物件,
一個物件內會有那些東西, 狀態(state)及行為(behavior),

狀態是什麼? 以人為例, 名字, 性別, 膚色, 身高...等皆是人所擁有的狀態.
行為又是什麼? 一樣以人為例, 跑, 走, 吃東西, 喝水...等動作皆是一個人所擁有的行為.
人可以定義成一個類別(class)叫人類,
將上面的說明轉換成程式,
狀態便是程式中的變數(varialbe, 官方稱為field),
行為便是程式中的方法(method),
定義方式如下:
// 類別(class)叫人類(Human)
class Human {
//人類所擁有的屬性(property)
    String name;
    String sex;
    int height;
// 人類所擁有的行為(method)
    void setName(String name){}
    float run(){
        return float kilometer;
    }
    void eat(String food){}
}
若要使用 Human類別, 必須先將 Human類別實體化,

class HumanDemo {
    Human Taiwanese = new Human();
}
在 HumanDemo裡 Taiwanese是 Human類別的實體(instance),
當一類別被實體化後, 便可使用該類別中所定義之變數及方法.

[Java] 基本資料型態 Primitive Data Type

Java的基本資料型態共有八種,如下所述:
  1. byte: 大小為 1byte, 其值範圍為 -128 ~ 127
  2. short: 大小為 2byte, 其值範圍為 -32,768 ~ 32,767
  3. int: 大小為 4byte, 其值範圍為 -2,147,483,648 ~ 2,147,483,647
  4. long: 大小為 8byte, 其值範圍為 9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
  5. float: 大小為 4byte
  6. double: 大小為 8byte
  7. boolean: 僅有兩個值true, false
  8. char: 可儲放一個 16-bit Unicode 文字
當一實體變數(Instance Variable)以基本型態宣告時, 可不給定初始值,
此時JVM會自動賦予變數一初始值,
但要使用該變數仍舊需要賦予初始值,
各基本型態之初始值如下:
Data Type 初始值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
String (or any object) null
boolean false

2008/08/26

[Java] Idetifier 識別字

在Java程式中, 在宣告變數, 方法或是一個類別時, 都須給定一個名稱以供識別,
宣告識別字(identifier)有下列四個條件:
  1. 開頭第一個字元可為英文字母, "_"或"$", Ex: apple, $apple, _apple
  2. 第二個字元起可以是數字, 英文字母, "_"或"$", 且沒有字元長度限制, Ex: a1, $1, _1
  3. 變數名稱英文字母大小有別
  4. 不可為保留字(Reserved Word), 如下:
  5. abstractinterfacebooleanbreak
    constcontinuedefaultdo
    floatforgotoif
    nativenewpackageprivate
    strictfpsuperswitchsynchronized
    voidvolatilewhileassert
    bytethisimportextends
    doubleenumpublicinstanceof
    implementscasethrowreturn
    protectedelsecatchthrows
    charfinalintshort
    transientclassfinallylong
    statictry