A1:並不是,實際上是先經過java compiler編譯成bytecode(一種類機器語言),交給JAVA virtual machine(JVM)解譯之後在交由CPU執行
Q2:class(類別)跟object(物件)差在哪??
A2:
類別:類別是一個結構,裡面放了所需的資料,與操作資料的函數,整理在一起方便操作。
物件:所有物件都定義在類別裡面,物件是依照類別的意義去建構出來的。
class Customer<--(類別)
{
String User = “Ray”;
String Pass = “1201”;
…… (物件)--> Peter = new Customer
}
}; (物件)--> Ray = new Customer類別就像是一張設計圖
物件是設計圖的完成品
Q3:Information hiding啥玩意兒??
A3:將class的執行細節隱藏起來。class內的method被定義後,你只需要將input丟進去得到output即可,使用者無須理會method如何執行,避免使用者誤用而產生錯誤或更糟的結果。
Q4:encapsulated(封裝)?
A4:封裝是讓實作和界面分開, 使資料分為程式設計師的介面與使用者介面,達到Information hiding的效果降低誤用的錯誤發生。
Q5:overload(多載)?
A5:多個相同名字的method,若引數資料型態不同,則呼叫不同method
Q6:new是什麼東西,我不懂他實際在做什麼!
A6:new是一個動作,用來使class變數與class內的物件作連結,使用者可以用class變數去使用class裡面的物件,用課本P203的例子:
DateFirstTry data;
//從DateFirstTry這個class產生一個data的物件
data = new DateFirsTry();
//將date與DateFirstTry的內容作連接
//之後可以藉由data去呼叫DateFirstTry的method(類似C語言的function)跟運算
Q7:constructor(建構子)跟overload(多載)有什麼關係呢?
A7:constructor簡單來說是method跟class名稱相同,當我們在new一個class變數的時候,直接傳入引數時,那麼class變數的值,會成為constructor的回傳值。而constructor可以多載,在constructor的引數可以置入變數,並定義不同引數輸入時會執行那些constructor,使建構子擁有更便捷的功能。
(範例請自253頁開始看)
Q8:Accessor與Mutator Methods?
A8:
Accessor Methods :准許你讀取資料的方法(method)。
Mutator Methods :允許改變在class object裡面的資料的方法(method)。
Q9:static、final、static final有何分別
A9:
static :靜態變數,定義的變數將永久保存在記憶體,不隨方法(method)運算結束而消失,直到程式結束。
final :定義的變數值不可改變。
static final:結合以上二者的特性。
獲益良多!!!!!!!!
回覆刪除讚~
回覆刪除