20155213 2016-2017-2《Java程序设计》第四周学习总结
20155213 2016-2017-2《Java程序设计》第四周学习总结
教材学习内容总结
继承与多态
继承
- 继承避免多个类间重复定义共同行为,使用关键字
extends
。继承表明了子类与父类之间的is-a
关系,中文称为“是一种”。子类继承父类之后,定义与父类中相同的方法部署,但执行内容可以相同也可以不同,不同时需要“重新定义”,并且可以改写父类里抽象类型 在@Override
下重写
多态
- 继承的多态是指同一父类有很多子类,被很多子类重复使用。
- 被声明为
protect
的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
一些继承里出现的关键字语法小结
关键字 | 解释 |
---|---|
super() | 可以直接调用父类函数,越级调用; |
this() | 通常指当前对象,调用当前类中函数 |
extends | 后接继承类名称,用于继承 |
abstract | 标示该方法为抽象方法 |
接口与多态
接口
- 在Java中可以使用
interface
关键字定义行为。可供其他类调用该接口,调用时需要关键字implement
打头; - 操作接口则表示“拥有行为”,某个类可以同时拥有很多接口
- 在子类的操作中可以用
@Override
重写
【注释】可以访问java中super的两种用法了解下super()用法;
教材学习中的问题和解决过程
- 问题一:println,printf,print的具体用法,以及格式控制
用法 | |
---|---|
将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后 | |
println | 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始 |
printf | 格式化输出的形式 |
- 其中printf()继承了C语言里的printf()函数,里面相关格式控制具体参考Java中print、printf、println的区别;
- 问题二:private,public,无关键字,protected的权限比较
- public、protected、默认、private修饰方法时作用域依次降低public方法作用域为本类,包内,子类,包外都可protected方法作用域为本类,包内,子类默认关键字修饰的方法的作用域为本类,包内private方法作用域只是本类
- 可以参考public、protected、默认、private关键字;
代码调试中的问题和解决过程
-
问题:编译不通过:不兼容,ROle无法转换成SwordMan型;
-
这是典型的
is-a
问题,当时在定义SwordMan类时,继承了Role类,因此,Role和SwordMan类的关系是,Role是SwordMan的父类,SwordMan 是一种(is-a)Role,在代码里只需修改后部代码,改为Role swordman =new SwordMan();
就行了
代码托管
-
代码提交过程截图
-
代码量截图:
上周考试错题总结
卷四,第一题
- (grep)命令可以进行全文搜索。
- 解释:grep是linux中很常用的一个命令,主要功能就是进行字符串数据的对比,能使用正则表达式搜索文本,并将符合用户需求的字符串打印出来。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是所有用户。grep在数据中查找出一个字符串时,是以整行为单位来进行数据选取的。
- System.out.println(“”+52+25);的结果是(5225)
- 解释:
System out println(""+i);
等价于System.out.println(i.toString());
。public String toString()
返回该对象的字符串表示。通常,ToString()方法会返回一个“以文本方式表示”此对象的字符串。因此在本题中以字符串形式输出5225。
其他
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第二周 | 98/100 | 1/2 | 30/38 | 学习java的基础语法 |
第三周 | 302/300 | 1/3 | 27/30 | 学习java对象及封装 |
第四周 | 1032/1000 | 1/4 | 36/40 | 学习了继承与多态的关系,以及接口的多态操作 |