在學習到書上的抽象類實例時,書中舉得例子是經過先操做需求部分的內容來設計程序,使得自己看似不合理的需求獲得知足。這一點放在Java中,就表現成對一個類的定義不完整的時候抽象的方法仍是能夠調用運行。這讓我對Java的認知有了新的提高:有了這種抽象類咱們能夠實現一些「感受上」不能被實現的問題。 我感受書上對抽象類的概念和用法並無很清晰,經過查閱資料我還獲得了一下關於抽象類的規定:
抽象類的子類必須覆蓋全部的抽象方法後才能被實例化,不然這個子類仍是個抽象類。html
public class Role{ private String name; private int level; private int blood; public int getBlood(){ return blood; } public void Setblood(int blood){ this.blood= blood; } public int getLevel(){ return level; } public void setLevel(int level){ this.level=level; } public String getName(){ return name; } public void setName(String name){ this.name=name; } }
2.在一開始使用繼承時,我試着將書上的代碼合到一塊兒,卻怎麼樣都不對,通過一行一行的檢查我發現我在定義繼承的時候加上了一句話:static Magician magician;致使後面找不到符號magician所有出錯。刪除了這行字以後,程序依舊沒有成功,再次檢查後發現我將Magician magician=new Magician()的Magician和magician之間多加了一個點,致使對象建立失敗,程序出錯。
成功的代碼以下:java
class Role{ private String name; private int level; private int blood; public int getBlood(){ return blood; } public void setBlood(int blood){ this.blood= blood; } public int getLevel(){ return level; } public void setLevel(int level){ this.level=level; } public String getName(){ return name; } public void setName(String name){ this.name=name; } } class SwordsMan extends Role{ public void fight(){ System.out.println("揮劍攻擊"); } } class Magician extends Role{ public void fight(){ System.out.println("魔法攻擊"); } public void cure(){ System.out.println("魔法治療"); } } public class RPG{ public static void main(String[] args) { demoSwordsMan(); demoMagician(); } static void demoSwordsMan(){ SwordsMan swordsMan=new SwordsMan(); swordsMan.setName("Justin"); swordsMan.setLevel(1); swordsMan.setBlood(200); System.out.printf("劍士:(%s,%d,%d)%n",swordsMan.getName(),swordsMan.getLevel(),swordsMan.getBlood()); } static void demoMagician(){ Magician magician=new Magician(); magician.setName("Monica"); magician.setLevel(1); magician.setBlood(200); System.out.printf("魔法師:(%s,%d,%d)%n",magician.getName(),magician.getLevel(),magician.getBlood()); } }
而且程序運行成功:
函數
這一星期的學習出如今書上的有不少都是專業術語,乍看上去有種什麼都不會了的感受,再加上個上星期的Java學習我還有不少不到位的地方,所以看着兩章的時候我感受很吃力,看了幾遍書也沒用徹底弄懂某些地方。我想像之前那樣經過對書上代碼的實踐更好的理解程序,卻發現修改了幾遍本身的程序以後,仍是會有一些書上沒有提到過的錯誤,這些錯誤有的是由於打出來的代碼太長,不當心就犯了一些符號上的或者是多加了一個分號或者是名稱大小寫的錯誤,有的是由於我在憑着本身的理解打出來的時候多加了一些不應加的語句,還有一些是書上沒有提到的錯誤,可是經過查閱資料能夠解決。總而言之,經過幾回這樣的實踐,我感受對這章內容的理解進步了很多。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 200/200 | 2/2 | 10/10 | |
第二週 | 300/500 | 1/3 | 16/26 | |
第三週 | 300/800 | 1/4 | 18/44 | |
第四周 | 300/1100 | 1/5 | 18/62 |