21
2011 2011 中正資管學術部講座 中正資管學術部講座 Java – Object Java – Object 2011/04/28 主講人: Veck Hsiao

2011中正資管學術部講座 Java-Object

Embed Size (px)

Citation preview

20112011 中正資管學術部講座中正資管學術部講座Java – ObjectJava – Object

2011/04/28 主講人: Veck Hsiao

ClassClass車子 (Class ,類別 )◦ 汽車 ( 子類別 ) : A 的汽車 ( 實體 ) 、 B 的汽

車◦ 機車 : A 的機車◦ 踏車腳 :C 的 踏車腳◦ 推車 :D 的推車◦ ….

結構結構 class [className]

{ int …; char …;

public [methodName]( ) {

……}

}編譯後產生的 .class 就是這個 class

Object v.s. InstantObject v.s. Instant其實兩者指的都是同一種東西

所有從 Class 實體化 new 出來的 Object都稱為 instatnce

我們 new 一個 class 的 Object 出來,稱之 instance

這樣講還是不知道這樣講還是不知道 ObjectObject 到底是什麼?到底是什麼?

把物件用集合表示,則可得知把物件用集合表示,則可得知 ObjectObject 其其實就是實就是 instanceinstance

把函數求出的值稱為結果把機器造出的東西稱為 品產把類別實體出的物件稱為實體

Static Variable and MethodsStatic Variable and Methods在同一個 Class 中,宣告為 static 的變

數和方法,所用的是同一快記憶體空間沒有宣告為 static 的變數和方法各自

有自己的記憶體空間

到底要不要到底要不要 new?new?A a;A a = new A();

Constructor Constructor 就是初始化物件類似於 int a = 1 的動作

public class A{◦ public A (int aa) { int a = aa; } // 建構子◦ pubilc void B(int bb) { int b = bb; } // 方法

}

private private 與 與 get() & set()get() & set()private : 只有我知道 ( 用 )protected : 只有我和我兒子知道 ( 用 )public: 任何人都知道 ( 用 )

為了要存取屬於 private 的變數,所以要使用自己實作的 get() 和 set()

this & superthis & supersuper.[parentMember]super.[parentMethod]

使用時機 : ◦ 當自己有跟爸爸相同名稱的成員或方法,

但是想要使用爸爸的

this & superthis & superthis.[Member]this.[Method]

使用時機 : ◦ 當自己有跟爸爸相同名稱的成員或方法,

但是想要使用自己的◦ 當自己的方法中有跟傳入變數相同的成員

,為了要指定而使用 ( 因此通常避免相同名稱的參數 )

this & superthis & supersuper.[parentMember]super.[parentMethod]

使用時機 : ◦ 當自己有跟爸爸相同名稱的成員或方法,

但是想要使用爸爸的

this & superthis & superclass A{

int a; public void function(int a){ this.a = a; }

}class B{

A obj = new A();obj.function(0);}

FinalizerFinalizerJava 的回收機制也可以稱為『解構子』

使用 obj = null; 回收後會自動呼叫 finalizer

建構子→配置資源 ( 記憶體空間 )解構子→回收資源 ( 收回記憶體 )

protected void finalize(){ // 清除資源時要執行的程式碼 }

StringString 一個是對的用法哪 ?String str = “str”;String str = new String();

Wrapper type vs Primitive type Integer int

InterfaceInterface

class I {method A(){}Method B(){}}

如果 class a 和 class b 都要有方法 A 和B

但是 a 的 A 和 b 的 A 會不同怎麼辦 ?

InterfaceInterface1. class a 和 class b 都繼承 class I ?

=> 這樣子 a 和 b 都有相同 A 和 B (X)2. 不要繼承,直接在 a 和 b 中各自實

作方法 A 和 B=> 浪費資源、容易出錯 ( 如 : 混淆 )

3. 使用 Interface=> 因為是在類別中才要實作,因此 a和 b 可以自行定義不同的 A 和 B

Q: 如果 a 兩個都要但是 b 只要 B 不要 A?

很推的資源很推的資源 ~~

參考書目 : ( 幫助我轉學考 Java 榜首的 )<Java 由初學邁向認證 > 金禾出版 鄭博元 著( 最主要還是要看你自己看得滿意 )( 不推薦買翻譯程式書 )

良葛格學習筆記 ( 超多讚 !)

Java 要學好,大二資料結構會用到

提問時間 ???@@

謝謝大家 !!! @_<

考試加油 !!!!!!