20145320《Java程序设计》第4周学习总结
2016-03-27 18:39
633 查看
20145320《Java程序设计》第4周学习总结
教材学习内容总结
第六章 继承与多态
继承
继承作为面向对象的第二大特征,避免多个类间重复定义共同行为。即当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。我们也把单独抽取出来的那个类称为父类,其他的多个类称为子类。java中使用关键字
extend命令实现继承,如
Magician继承Role的行为,再扩充了Role没有的fight与cure行为
子类可以直接访问父类中的非私有的属性和行为,而对于private成员也会被继承,只不过子类无法直接存取,必须通过父类提供的方法来存取(如果父类愿意提供方法的话)。
在java中,子类只能继承一个父类,继承有个重要的关系,就是子类与父类间会有
is-a关系。
例如
Role role=new SwordsMan();可以编译,
而
SwordsMan swordsMan= new Role();是不行的,没有搞清楚谁是谁的父类。
继承成功了
多态
什么叫多态?以抽象讲法解释,就是使用单一借口操作多种类型的对象。例如:
showBlood()方法中,既可以通过
Role类型操作
SwordsMan对象,也可以通过
Role类型操作
Magician
如果某方法区块中没有任何程序代码操作,可以使用
abstract标示该方法为抽象方法,该方法不用撰写
{}区块,直接“;”结束即可。类中若有方法没有操作,并且标示为
abstract,表示这个类定义不完整,因此也就不能用来生成实例。Java中规定内含抽象方法的类,一定要在
class前标示
abstract,表示这是一个定义不完整的抽象类。
java中有public、protected、与private三个权限关键字,但实际上有四个权限范围
(图转自娄老师)
如果子类构造函数中没有指定执行父类中那个构造函数,默认会调用父类中无参数构造函数。如想执行父类中某构造函数,可以使用
super()指定。
this()与
super()只能选择一个调用,并且一定要在构造函数第一行执行
第七章 接口与多态
对于“定义行为”,可以使用interface关键字定义,例如
public、
interface、
Swimmer,接口中的方法不能操作,直接表示为
abstract,而且一定是
public。类要操作接口,必须使用
implements关键字。操作某接口时,对接口中定义的方法有两种处理方式,一是操作接口中定义的方法,二是再度将该方法标示为
abstract,例如:
鱼会游泳
以java的语意来说,而继承是
is-a的关系,操作接口则表示“拥有行为”关系,对于接口多态语法的判断,方式是“右边是不是拥有左边的行为”,或者“右边对象是不是操作了左边接口”。
在教材中,会游泳的东西,都拥有swimmer的行为,都操作了swimmer接口
运行结果
可以使用接口枚举常数,只能定义为
public static final。
public static final
可以省略,编译程序会协助补齐。
接口可以继承别的接口,也可以同时继承两个以上的接口,同样也是使用
extends关键字,这代表了继承父接口的行为。
enum实际上定义了类,而
enum中列举的常数,实际是
public static final,且为枚举类型实例,无法撰写程序直接实例化枚举类型,因为构造函数权限设定为
private,只有类中才可以实例化。
代码调试中的问题和解决过程
这周的代码托管其他(感悟、思考等,可选)
这周的两章结合比较紧密,但是要我在一周之内完全掌握这两章内容实在是有点难度。为了学习java,我放弃了学习其他科目的时间,加上备考计算机二级,这周基本上就没有学习其他科目的内容。虽然大家都沉浸在学习java的海洋中,但是我就发现大家就只在学习java了,连上周的密码学的作业,这么简单的题目,大家都在相互抄袭。可笑!我就实话说吧,一周两章要人命,而且也学不精!
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 1/1 | 20/20 | |
第二周 | 300/500 | 1/2 | 18/38 | |
第三周 | 300/800 | 1/3 | 22/60 | |
第四周 | 300/1100 | 1/4 | 30/90 |
参考资料
Java学习笔记(第8版)《Java学习笔记(第8版)》学习指导
...
相关文章推荐
- Java-Scanner
- 今天踩了个大坑,springmvc的Circular view path
- jst获取不到springmvc中model数据
- java虚拟机参数设置 jvm参数设置
- java虚拟机参数设置 jvm参数设置
- jmeter java sampler测试java接口(一)javatest解读
- RxJava初级解析(一)
- Java NIO:浅析I/O模型
- [贪心算法]java解决背包问题
- java循环练习:用户输入一个10以内的数字,通过运算求出该数字的阶乘
- 希尔排序(Java语言描述)
- Java基础之Set
- Java并发:三种线程抽象以及线程执行
- ubuntu14.04安装jdk
- Java词频统计算法(使用单词树)
- JAVA第三周随笔
- Java socket中关闭IO流后,发生什么事?(以关闭输出流为例)
- springmvc 原理图文解释
- myeclipse断点调试
- Java内部类详解