2008年6月28日 星期六

JAVA inner class

static inner class只能存取enclosing它class內的static成員
static inner class只能放在top level class或 其他static inner class
static inner class裡面可以有static成員及non-static成員

non-static inner class裡面除了final static以外,不能有static成員
non-static inner class可以有任何的accessibility modifier


local inner class 只能存取 包含它的Method內的final變數

如果包含local inner class的context或method是static,則class也是隱含static

local inner class的reference不能在context外面declare,只能用它的superclass來接在context裡面new出來的instance

anonymous inner class 裡只有non-static members 和 final static fields

2008年6月24日 星期二

JAVA interface

class可以不實作interface的所有方法,不過要標為abstract
interface的變數隱含 public, static and final且一定要initial值

*而interface的method隱含public
所以要override他一定要設為public

JAVA constructor & initial block

constructor沒有return value (連void都沒有)
有的話,就算是同名,也不是constructor

constructor可以為private或任何modifier
不過若為private,則在外面就不能用這個constructor

constructor裡面
this()或super()只能放在第一行
而且不能同時出現在同一個constructor

在有父類別的情況下
如果兩個都沒有,compiler會偷偷插入一個super()在最前面
這時如果父類別沒有default constructor就會錯誤!

constructor不能access static member?

initial block:

static的順序
照著放置先後順序

instance block順序
super() -> block 或express 照先後順序 -> 其他constructor

2008年6月18日 星期三

開始寫Java考古題

還真是寫的很挫敗啊
一堆觀念都還不清楚

2008年6月14日 星期六

Multi Thread、Synchronized

之前都沒有撰寫過MultiThread程式的經驗
Synchronized跟Deadlock這種大學OS該學會的問題當年也沒學好
工作後才開始珍惜唸書的感覺
該減少自己時間的浪費了...迎頭趕上!

JAVA

感覺好像都繼承現有的class或實作interface
這種繼承才有物件導向的感覺

到現在才在學OO, 實在是遜了點

2008年6月2日 星期一

C++讀寫binary檔案

用fread與fwrite來讀寫檔案
call一次function只能傳有限大小
必須把要讀寫的內容分段讀寫
所以要用個counter來記錄還需要讀寫多少資料
而pointer也需要一直累加

有點像寫socket程式一樣