2013年1月3日 星期四

巧用建構子(Constructor)

物件生成的時候

會先呼叫建構子來設定屬性

如果沒有撰寫建構子的話

Compiler 會執行預設建構子(Default Constructor)

預設建構子是不會做任何的事情的

建構子大概長得像下面這樣

public Encrypt() {}

如果有參數的話會像這樣


public Encrypt(int a, int b, int n, char c, int dif) {
    this.a = a;
    this.b = b;
    this.n = n;
    this.c = c;
    this.diff = dif;
    setArray();
}

然而本篇提到的妙用

是指利用this()也可以當作呼叫運算子

像是下面這樣


public Encrypt(int a, int b) {
    this(a, b, 26, 'a', 97);
}

等同是呼叫


public Encrypt(int a, int b, int n = 26, char c = 'a', int dif = 97) {
    this.a = a;
    this.b = b;
    this.n = n;
    this.c = c;
    this.diff = dif;
    setArray();
}

蠻酷炫的!!

沒有留言:

張貼留言