20175314 《Java程序设计》第四周学习总结
20175314 《Java程序设计》第四周学习总结
教材学习内容总结
每个子类只能有一个父类,而一个父类可以有多个子类。可以使用关键字extends来定义一个类的子类:class 子类名 extends 父类名。不加extends关键字时,默认为Object类,Object类是任何类(除了本身)的祖先类。简单的说,子类拥有父类的所有(除了private类及不同包的友好类),同时可以拥有自己新的东西。子类可以通过继承的方法来操作未继承的变量。父类的方法被子类重写时,可以各自产生自己的功能行为。
如果一个类A想通过一个其他类B的子类C创造对象来调用它的变量或者方法:
①若要调用的是子类C内部新定义的而不是继承的,只要C与A同包即可;
②若要调用的是C继承下来的,只要C所继承的祖先类与A同包即可。
instanceof运算符:除了之前在第二章总结的以外,还有:当子类创造的对象与父类去使用instanceof运算符时,得出的结果也是true。
当子类新声明的变量名与继承的变量名相同时,继承的变量名会被隐藏。但是我们仍可以通过继承的方法来对隐藏的变量名进行操作。(继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量。)
方法重写:要求新的方法的类型与父类相应方法一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父亲的方法完全相同。重写方法可以操作继承的变量、方法,也可以操作子类新声明的成员变量、方法。如果子类想要使用被隐藏的方法或者成员变量,需使用super。注意,重写方法时不允许降低方法的访问权限。
super的使用方法:通过命令super.[成员变量]和super.[方法]来分别使用被隐藏的变量和方法。在父类中定义多个构造方法时,应当包括一个不带参数的构造方法,这是因为如果在子类中没有写出super关键字,默认地有super()。
final关键字:final关键字可以修饰类、成员变量和方法中的局部变量。①修饰类:被修饰的类不能有主类。
②修饰父类的方法:子类不能对被修饰的方法进行重写
③修饰变量:被修饰的变量变为常量,常量在运行期间不能发生变化。
上转型对象:通过把子类创建的对象的引用赋给父类创建的对象来得到上转型对象。上转型对象不能操作子类新增的成员变量与方法,但是可以操作子类继承或隐藏的成员变量或方法。注意的是,如果子类重写了父类的静态方法,则子类对象的上转型对象不能调用子类的重写静态方法,只能调用父类的静态方法。
关键字abstract:①修饰方法:被修饰的方法只能声明不能运行。
②修饰类:被修饰的类中可以有abstract方法,也可以有非abstract方法。而没被修饰的类只能有非abstract方法。
abstract父类的abstract子类可以继承或重写父类的abstract方法,但是abstract父类的非abstract子类必须重写父类的abstract方法。
abstrcat的类只能声明对象但是不能创建对象,但是该对象可以成为其子类的上转型对象。
abstract不能和final同时修饰。
abstract类在实际中很好用,因为它注重面向对象而不是面向类。
开闭原则是对扩展开放,对修改关闭。我觉得在这其中abstract起了很大的作用。遵守开闭原则的系统易于维护。
教材学习中的问题和解决过程
- 问题1:使用或覆盖了已过时的API。
- 问题1解决方案:一开始我以为是运行错误,上网查找后知道这只是一个警告,只是告诉使用了已经过时的函数,但jdk是向下兼容的
解决方法1:直接在myeclipse里面运行。
解决方法2:在cmd下编译,javac Dert.java写一个网页applet code=Dert width=200 height=200,保存为:任意名字.html文件,然后双击网页。
- 问题2:一个具有5个类的程序,错误运行了被调用类。
- 问题2解决方案:确定是程序主类运行。
代码调试中的问题和解决过程
问题1:课上测试题边界运行结果不符合程序计算规则。
代码需要优化
代码托管
上周考试错题总结
- 错题1
原因:概念不清
理解情况:接口的方法默认是public abstract,变量默认是public static final。 错题2
原因:概念不清
理解情况:1、接口是可以被接口继承的,即通过关键字extends声明一个接口是另一个接口的子接口。由于接口中的方法和常量都是public,子接口将继承父接口中的全部方法和常量。
2、抽象类可以实现接口,当一个类声明实现一个接口而没有实现接口中所有的方法,那么这个必须是抽象类,即abstract类。
3、抽象类是可以继承实体类。心得体会
因为马上要考科目二了,最近在驾校待的时间会比较多,所以这周的Java学习时间就比较少了,老师没有在蓝墨云上发布第四周的学习任务,而在博客园中设置为选做但是第五章的内容还是相当重要的,我感觉从这一章开始才慢慢接触到Java的特殊,希望自己在上半年利用周末和小长假查缺补漏,避免重现以往学期期末临时抱佛脚的惨状。
学习进度条
代码行数 | 博客量 | 学习时间 | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 16篇 | 320小时 | |
第一周 | 51/100 | 1/1 | 12/20 | 基本掌握了Linux的简单指令 |
第二周 | 173/200 | 1/1 | 18/20 | 学习了Java重要基本语法 |
第三周 | 672/800 | 1/1 | 18/20 | 学习了包含多个类的Java程序及类的包机制 |
第四周 | 436/600 | 1/1 | 12/20 | 学习程序父类和子类的继承规则 |
计划学习时间:20小时
实际学习时间:12小时
参考资料
20175314 《Java程序设计》第四周学习总结的更多相关文章
- Java程序设计第四周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...
- 杨其菊201771010134《面向对象程序设计(java)》第四周学习总结
<面向对象程序设计(java)> 第四周学习总结 第一部分:理论知识 1.类与对象 a.类(class)是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例: java中类声明的格式 ...
- 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈
对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第四周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第四周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-da ...
- 20155318 2016-2017-2 《Java程序设计》第九学习总结
20155318 2016-2017-2 <Java程序设计>第九学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型 ...
- 《Java程序设计》第二学习总结
<Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 20145120黄玄曦 《java程序设计》 寒假学习总结
1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
随机推荐
- PythonStudy——函数的导入 Import of functions
# 函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数# 难点:如何定义个函数 # 现实中很多问题要通过一些工具进行处理 => 可以将工具提前生产出来并命名# = ...
- NumPy-快速处理数据--ndarray对象--数组的创建和存取
本文摘自<用Python做科学计算>,版权归原作者所有. NumPy为Python提供了快速的多维数组处理的能力,而SciPy则在NumPy基础上添加了众多的科学计算所需的各种工具包,有了 ...
- DSP2812 启动详解
百度文库转载 1. 从0X3F FFC0处复位→执行0X3F FC00地址处的初始化引导函数(Initboot) →根据GPIO选择引导模式→确定用户程序入口地址→从入口处开始执行用户程序. 输入外部 ...
- 《Java程序设计》 第二周学习总结
20175334 <Java程序设计>第二周学习总结 教材学习内容总结 了解Java编程风格 认识Java基本数据类型与数组 掌握Java运算符.表达式和语句 教材学习中的问题和解决过程 ...
- mysqli字符编码
mysqli 字符编码: 汉字编码: 1.gbk 最久的编码格式,不能写繁体: 2.国内的gb2312: 3.国际的标准:utf-8; 查看数据库的字符编码: show variables like ...
- CSS之display
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 涨姿势:Java 异常?尝试自定义异常
1.异常 在Java中,每个异常都是一个名叫Throwable的类的一个实例 我们常用的try-catch-finally语句 try 尝试去执行try语句块里的内容,如果有异常,将其捕获,并执行ca ...
- weblogic发序列化命令执行漏洞工具分享
weblogic发序列化命令执行漏洞工具分享(链接: https://pan.baidu.com/s/1qE5MFJ32672l-MMl-QL-wQ 密码: d85j) JBOSS_EXP 工具分享( ...
- CRM 模拟用户
web api 模拟用户 转:https://blog.csdn.net/vic0228/article/details/80649615 var req = new XMLHttpRequest() ...
- DevExpress的42种窗体样式
在Winform环境下DevExpress标题栏皮肤 第一步:引用DLL文件,安装DevExpress后在引用>程序集>扩展: DevExpress.BonusSkins.v12.2.dl ...