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的具体用法,以及格式控制
用法
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 学习了继承与多态的关系,以及接口的多态操作

参考资料

posted on 2017-03-19 16:18  20155213陆忠民  阅读(198)  评论(2编辑  收藏  举报