🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

初次見面。
我是株式会社PRUM的工程師人見。
在日常的程式設計學習和實務中,
我整理並發佈容易卡住的重點。

如果對PRUM感興趣,
也歡迎查看我們的公司網站。
公司網站

還沒有讀上次文章的朋友請點擊這裡

👉 【寶可夢×Java】Lv14:『面對的對手,努努!』


🎮 戰術時間

努努「原來如此,ひとみん……」
努努「如果只能攻擊皮卡丘,那就無法再往前走了?」

ひとみん博士「不需要著急。牠在昨天之前也是跟你一樣的」
努努「!!」

ひとみん博士「來吧,下一個階段升級吧!」

💡 技術主題:抽象類別(共通化)

▷ 檢查小火龍、皮卡丘、傑尼龜的差異

📖 博士重點①
傑尼龜小火龍皮卡丘有什麼不同?

種類 資料型態 皮卡丘類別 小火龍類別 傑尼龜類別
資訊 名稱 皮卡丘 小火龍 傑尼龜
資訊 類型
資訊 HP 100 100 100
資訊 技能 4個 4個 4個
資訊 技能威力 4個 4個 4個
命令 登場 Pikachu() Hitokage() Zenigame()
命令 嚎叫 cry() cry() cry()
命令 攻擊 attack(Hitokage,No) attack(Pikachu,No) attack(???,No)

寶可夢們,雖然在名稱和類型上都有各自的個性,但
應該擁有相似的資訊(欄位)和命令(方法)!
小火龍、傑尼龜、皮卡丘……大家都是夥伴呢!
我們來讓大家能夠統稱為寶可夢吧!


▷ 創建共同類型 Pokemon

📖 博士重點②
一起整理相同的資訊吧

abstract class Pokemon {
    String name;
    String type;
    int hp;

    String[] moves;
    int[] powers;

    abstract void cry();

    void attack(Pokemon target, int moveIndex) {
        System.out.println(name + " 的 " + moves[moveIndex] + "!");
        target.hp = target.hp - powers[moveIndex];
        System.out.println(target.name + " 受到 " + powers[moveIndex] + " 的傷害!");
        System.out.println(target.name + " 的 HP 現在是 " + target.hp + " 了!");
    }
}

📒 訓練家備忘①

  • abstract 的意思是「尚未決定處理方式
  • 這是整理出來的,有這些資訊命令的就是寶可夢

順便提一下、、、什麼是抽象化?(不需要記住)
聽到「抽象化」似乎很難,但其實就是這樣的:

即使名稱和外觀不同,但如果做的事情相同,
也可以統稱為“夥伴”!

例如:

  • 咖哩・義大利麵・うどん → 食物
  • 貓・狗・馬 → 動物
  • 小火龍・皮卡丘・傑尼龜 → 寶可夢

找到共通點並將它們整合在一起。
這就是程式設計中的「抽象化」!

下次:『小火龍和皮卡丘,都是同樣的寶可夢!?』

因為能夠將寶可夢們視為夥伴
所以可以與任何寶可夢戰鬥!
接下來,我們將為寶可夢的夥伴這個資訊
添加皮卡丘的個性
期待下一篇投稿――
皮皮卡丘!!


PRUM的工程師中超過95%是從未有經驗時被招聘的。
有興趣的話,歡迎來我們的網站看看!
公司網站


原文出處:https://qiita.com/hitomin_poke/items/acc22c05c66826289f11


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝8   💬7   ❤️2
208
🥈
我愛JS
💬1  
6
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付