2018年5月26日 星期六

Java - 實作 Interface

希望各位大大看到上一篇的簡述能有些希望
至少能從生活中感覺出來那道光芒
接下來就是 Interface( 接口 )

什麼是 Interface ?
我該怎麼用?

我們先模擬情境吧
現在如果你要開派對
你希望是開聖誕趴?制服趴?
派對必備用品?
所以參加你的派對都必須要遵守( 實作 )!

1 . 制定規範
/**
 * 派對必要裝扮
 * @author brian
 */
public interface DressUp {
    /** 耳環 */
    String earring();
    /** 上衣 */
    String clothes();
    /** 褲子 */
    String pants();
    /** 通關密語 */
    void password();
}


2 . 只要參加都要有此配件才可參加
/**
 * 主題:我家派對
 * @author brian
 */
public class MyParty implements DressUp {

    @Override
    public String earring() {
        // 閃亮配飾
        return "diamond";
    }

    @Override
    public String clothes() {
        // 紅色上衣
        return "redTShirt";
    }

    @Override
    public String pants() {
        // 短褲
        return "shortPants";
    }

    @Override
    public void password() {
        // 心裏通關密語
        System.out.println("內心的通關密語:Cool");
    }

    public static void main(String[] args) {
        MyParty Peter = new MyParty();
        System.out.println("Peter的配飾 : " + Peter.earring());
        System.out.println("Peter的上衣 : " + Peter.clothes());
        System.out.println("Peter的褲子 : " + Peter.pants());
        Peter.password();
    }
}

Peter的配飾 : diamond
Peter的上衣 : redTShirt
Peter的褲子 : shortPants

內心的通關密語:Cool


歡迎轉載,請註明出處。



2018年5月24日 星期四

Java - 繼承 Extends

想必有時候剛入行的大大不知道繼承
剛開始也是讓人挺頭痛的
但是以生活動的例子來說
可能就直接排出掉很多學習障礙囉
我們就拿簡單的範例來說說吧

請依照順序觀看
1 . 父母有啥外觀與您相同?(頭髮、臉蛋、身高、體重)
2 . 我自己外觀長得怎樣?(頭髮、臉蛋、身高、體重)
3 . 長大後我會有哪些轉變?(頭髮、臉蛋、身高、體重)

首先,因為會繼承我父母的基因
public class ParentBody {

    public String hairColor() {
        // 黑頭髮
        return "Black";
    }

    public int height() {
        // 身高
        return 170;
    }

    public boolean glasses() {
        // 戴眼鏡
        return false;
    }

    public String language(String language) {
        // 家人聽能辨別這兩種語言
        if ("English".equals(language)) {
            return "英文";
        } else {
            return "中文";
        }
    }
}


所以我因該會是
public class MyBody extends ParentBody {

    public static void main(String[] arg) {
        ParentBody peter = new MyBody();
        System.out.println("Peter 髮色是 " + peter.hairColor() + " 色");
        System.out.println("Peter 身高是 " + peter.height() + " 公分");
        System.out.println("Peter 戴眼鏡 " + peter.glasses());
        System.out.println("Peter 是說 " + peter.language("Chinese"));
    }

}

Peter 髮色是 Black 色
Peter 身高是 170 公分
Peter 戴眼鏡 false

Peter 是說 中文

但是因為環境改變,我認定是(@override )

public class MyBody extends ParentBody {

    @Override
    public String hairColor() {
        // 因為潮流我就染白髮
        return "white";
    }

    @Override
    public String language(String language) {
        // 但我決定是這樣
        if ("English".equals(language)) {
            return "英文";
        } else if ("Chinese".equals(language)) {
            return "台語";
        } else {
            return "聽不懂";
        }
    }

    public static void main(String[] arg) {
        ParentBody peter = new MyBody();
        System.out.println("Peter 髮色是 " + peter.hairColor() + " 色");
        System.out.println("Peter 身高是 " + peter.height() + " 公分");
        System.out.println("Peter 戴眼鏡 " + peter.glasses());
        System.out.println("Peter 是說 " + peter.language("Chinese"));
    }

}


Peter 髮色是 white 色
Peter 身高是 170 公分
Peter 戴眼鏡 false

Peter 是說 台語

歡迎轉載,請註明出處。