[草稿]
物件導向
可以比喻為
規格書 (Class,類別)來定義 一個物件(object) 擁有的 屬性(內部運算的資料成員 Field)與 方法(外界互動的動態 Method)
舉例:
定義一個物件: 「球」
定義一個物件: 「球」
屬性(Field): 名稱: private String name;
半徑: private double radius;
半徑: private double radius;
方法(Method): 取得半徑getRadius();
取得名字getName();
存取權限 : 公用public (可以被程式呼叫,重覆被呼叫使用,並可傳入引數或傳回一個數值)
私有private (Only the same Class can be used)
protected ( )
建構方法 REF
1.
[this註]
public Ball(double r, String n) {
radius = r; // 實際等於this.radius = r;
name = n; // 實際等於this.name = n;}
繼承(extend)
當繼承extend某個類別class時,該類別的所有public成員都可以在衍生child類別中被呼叫使用,而private成員則不可以直接在衍生類別中被呼叫使用
這可以使用super()方法來達到,它表示呼叫基底類別的建構方法!
取得名字getName();
存取權限 : 公用public (可以被程式呼叫,重覆被呼叫使用,並可傳入引數或傳回一個數值)
私有private (Only the same Class can be used)
protected ( )
建構方法 REF
1.
無引數的建構方法中直接使用this() 來呼叫另一個有參數的建構方法
[this註]
- 每一個類別class的方法method成員都會隱含一個this參考,用來指向呼叫它的物件object
public Ball(double r, String n) {
radius = r; // 實際等於this.radius = r;
name = n; // 實際等於this.name = n;}
- 當物件需要得知自己的記憶體位址時, this參考的使用時機
舉例:
public class GUIExample extends JFrame implements MouseListener {
// ....
// 實作事件處理的物件為自已
addMouseListener(this);
// ....
// == 滑鼠事件實作 ==
public void mouseEntered(MouseEvent e) {
// .....
}
// ....
}
- 主要是用於類別中呼叫建構方法,而避免直接以建構方法的名稱來呼叫
public class Ball {
private String name;
public Ball() {
this("No name");
.... }
public Ball(String name) {
this.name = name;
.... } }
如此,不用在建構方法中撰寫重覆的程式碼
繼承(extend)
當繼承extend某個類別class時,該類別的所有public成員都可以在衍生child類別中被呼叫使用,而private成員則不可以直接在衍生類別中被呼叫使用
這可以使用super()方法來達到,它表示呼叫基底類別的建構方法!
沒有留言:
張貼留言