20145229吴姗珊 《Java程序设计》第4周学习总结
教材学习内容总结
第六章 继承与多态
6.1继承共同行为
1.继承基本上就是避免多个类间重复定义共同行为
简单的类的定义
使用swordsMan继承Role,其中,SwordsMan就是子类,Role就是父类
类似的使用Magician继承Role类
如何确定真的有继承
继承的好处之一就是,就是若你要将name、level、blood改为其他名称,就只要修改Role.java就可以了
2.子类只能继承一个父类,继承除可避免类间重复的行为定义外,还有子类和父类存在着is-a的关系
3.编译程序就是语法检查器,要知道程序片段为何可以通过编译,为何却无法通过编译,就是将自己当作编译程序,检查语法的逻辑是否正确,方式是从=号右边往左读
4.继承的好处之一就是若你要将name、level、blood改为其他名称,那就只要修改Role.java就可以了,只要是继承Role的子类都无需修改
5.对drawFight()方法而言,只知道传进来的会是一种Role对象,所以编译程序也只能检查你调用的方法以及Role是不是有定义。
6.子类如果继承抽象类,对于抽象方法有两种做法,一种做法是继续标志该方法为abstract,另一种做法是操作抽象方法
6.2继承语法细节
1.protected:被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取
2.有时候重新定义方法时,并非完全不满意父类中的方法,只是希望在执行父类中方法的前、后做点加工
3.新定义方法要注意,对于父类中的方法权限,只能扩大不能缩小,若原成员为public,子类中重新定义时不可为private或protected
4.构造函数可以重载,父类中可重载多个构造函数,如果子类构造函数中没有指定执行父类中哪个构造函数,默认会调用父类中无参数构造函数
5.class前也可以加上final关键字,如果class前使用了final关键字定义,那么表示这个类是最后一个了,不会再有子类,也就是不能被继承
6.撰写程序常常有些看似不合理但又非得完成的需求。有些不合理的需求,本身确实不合理,但有些看似不合理的需求,其实是可以通过设计来解决的
第七章 接口与动态
7.1接口定义行为
1.对于“定义行为”,可以使用interface关键字定义
2.接口的出现将“多继承”通过另一种形式体现出来,即 “多实现”
3.类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口
4.接口与接口之间可以有继承关系
5.操作某接口时,对接口中定义的方法有两种处理方式,一是操作接口中定义的方法,二是再度将该方法标示为abstract。以java的语意来说,继承会有“是一种”的关系,操作接口则表示“拥有行为”
7.2接口语法细节
1.在java中,可使用interface来定义抽象的行为与外观,如接口中的方法可声明为public abstract
2.使用interface来定义抽象的行为外观,方法要声明为public abstract,无须且不能有操作。为了方便,也可以省略public abstract,编译程序会协助补齐。可以使用接口枚举常数,只能定义为public static final。为了方便,也可以省略public static final
3.匿名内部类:就是内部类的简化写法
4.格式为:new 外部类名或者接口名(){覆盖类或者接口中的代码
教材学习中的问题和解决过程
本来4,5章的内容就不是很懂,然后现在学6,7章,不懂的还是挺多的,那个继承每次敲书上的代码都会出现错误,说找不到那一类的符号。然后第七章感觉结合在一起的类容就更多了,对排除错误的能力还有欠缺,代码照着书上敲的,知识越来越深入了。
代码调试中的问题和解决过程
不知道照着书上敲的代码还会出现错误,显示找不到类所提示
本周代码托管截图
其他(感悟、思考等,可选)
这周的学习中主要是自己敲代码,因为以前C语言学习对程序设计没什么兴趣,导致对java没什么兴趣然后也不想学,现在还是愿意认真的学习,让自己掌握多一点的知识,在计算代码行数中因为wc软件下载了解压不行,所以还是自己数的,等询问同学后将会使用软件重新修改。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 80/100 | 1/1 | 15/15 | |
第二周 | 100/100 | 1/1 | 17/17 | |
第三周 | 100/100 | 1/1 | 17/17 | |
2天知识总结 | 100/100 | 1/1 | 15/15 | |
第四周 | 430/100 | 1/1 | 14/14 |