[問題] 關於父類別中全域變數的問題

作者: lazarus1121 (...)   2019-07-28 23:24:57
請想問一下一個粗淺的問題
可是我不知道要下什麼關鍵字來找答案所以找不到@@
假如我有一個類別jar檔 AAA
他的架構是
建構子中會new一些全域物件
然後當中的抽象類別BBB可供我呼叫
因此我在使用上大概是
AAA aaa = new AAA();
aaa.BBB(new todo(){
實作(){
熱水 water = 燒水();
water.放涼;
喝水(water);
}
})
實作中的喝水會使用AAA的模組來對全域物件進行存取,大概是這樣
我碰到的問題如下
因為這個實作裡面都是固定 燒水放涼+喝水,想抽出來
一開始試著全部丟到新method,但是喝水那行抽不了
因此改成讓新class繼承AAA,新抽象類別再繼承BBB
直接在新抽象類別做 燒水放涼+喝水 ,以後我都改用新的class就好
不過執行下去在喝水的地方NullPointerException
因為他要讀AAA的全域物件時找不到......
卡到最後我只好做半套弄一個會回傳water的燒水放涼模組
再把water放到喝水中orz
想請問這種架構真的沒辦法抽出來嗎,感謝@@
作者: ssccg (23)   2019-07-28 23:56:00
類別jar檔? aaa.BBB() ← 這是類別還方法? new todo()?AAA的全域物件? 覺得你的描述根本就不像已經掌握架構了先學好正確描述Java class、field、method關係....說不定學好後你就自然會改了
作者: Jichang (C.C.Lemon)   2019-07-29 18:20:00
應該是沒有呼叫super
作者: MephistoH (默非斯托)   2019-08-12 14:19:00
通常變數類的都會封裝用 get set 的method來用吧 ...

Links booklink

Contact Us: admin [ a t ] ucptt.com