在学习到书上的抽象类实例时,书中举得例子是经过先操做需求部分的内容来设计程序,使得自己看似不合理的需求获得知足。这一点放在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 |