20165203《Java程序设计》第四周学习总结
教材学习内容总结
第5章 子类与继承
- 子类的继承性
- 子类和父类在同一包中的继承性:子类继承父类中不是
private
的成员变量和方法作为自己的成员变量和方法 - 子类和父类不在同一包中的继承性:子类只继承父类中的
protected
和public
访问权限的成员变量和方法作为子类的成员变量和方法
2.成员变量的隐藏 - 子类对象以及子类自己定义的方法操作与父类同名的成员变量是指子类重新声明的这个成员变量。
- 子类继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量
3.方法的重写 - 子类中定义的这个方法要和父类中被覆盖的方法类型一致
- 重写的方法既可以操作继承的成员变量、调用继承的方法,也可以操作子类新声明的成员变量、调用新定义的其他方法,但无法操作被子类隐藏的成员变量和方法。
4.super
关键字: - 子类中想使用被子类隐藏的成员变量或方法
- 子类在其构造方法中需使用
super
来调用父类的构造方法,而且super
必须是子类构造方法中的头一条语句。
5.final
final
类不能被继承,不能有子类。final
方法不允许子类重写final
修饰成员变量或局部变量,他就是常量,且运行期间不允许发生变化。
6.abstract
-abstract
类可以有abstract
方法,也可以有非abstract
方法,但是非abstract
类只有非abstract
方法
第6章 接口与实现
1.接口声明
- 接口通过使用关键字interface来声明
- 格式:interface 接口的名字
2.接口体
- 接口体中包含常量定义和方法定义两部分。
- 接口体中只进行方法的声明,不许提供方法的实现,
- 所以,方法的定义没有方法体,且用分号“;”结尾。
3.接口回调
可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,
那么该接口变量就可以调用被类重写的接口方法。
实际上,当接口变量调用被类重写的接口方法时,就是通知相应的对象调用这个方法。
4.abstract类与接口的比较
- abstract类和接口都可以有abstract方法。
- 接口中只可以有常量,不能有变量;而abstract类中即可以有常量也可以有变量。
- abstract类中也可以有非abstract方法,接口不可以。
教材学习中的问题和解决过程
Q1:当学习到子类和父类不在同一包中的继承性时,提到private
、public
和protect
,他们之间的区别是什么?
A1:经过回顾第四章的内容,我总结了一下:
修饰符 | 修饰变量和方法 |
---|---|
private | 如果A类中某个成员是private类变量和方法,那么另一个类B中,不能通过类名A来操作这个变量和方法 |
public | 如果A类中某个成员是public类变量和方法,那么另一个类B中,能通过类名A来操作这个变量和方法 | protect | 如果在另外一个B中用类A创建了一个对象后,如果A和B在同一个包中,那么该对象可以访问自己的protect变量和方法。 |
Q2:(未解决)对于如图所示代码,出现问题:
如果computer方法的接口的参数是float型,为什么在主类上,实参是8和9是int型?

Q3:(未解决)对于如图所示代码,为什么要这么写,而不是直接给对象的实体变量赋值?
代码调试中的问题和解决过程
Q1:(未解决)在调试代码时,出现了如图所示状况:
Q2:(已解决)编译运行时,出现了如图所示错误:
A2:我上网查询了,总结了一下出现该问题的原因:
一般出现此问题的原因为:
- 花括号没有闭合
- 缺少了分号
仔细检查了一下自己的程序,确实是在父类中少打了一个}
。
Q3:(已解决)此前在学习之前的内容时,一直存在一个问题,出现类和主类不在同一个包里时,在编译主类时,总是出现错误,找不到类,不知是什么原因?
A3:在同学的帮助下,找到了原因,我之前并没有在类的文件夹之外编译运行,在文件夹之外运行后,编译成功了。
Q4:(已解决)之前运行代码时,出现了println
和printf
敲错的问题,为此,我特意总结了一下区别:
A4:
printf
主要是继承了C语言的printf
的一些特性,可以进行格式化输出
print
就是一般的标准输出,但是不换行
println
和print
基本没什么差别,就是最后会换行
代码托管
上周考试错题总结
Q1:
这道题尽管做对,但是我还是想了解一下java demo 3
的含义。
Q2:
A2:int
强制转换字符表示字符的Unicode码,即字符在Unicode表中的位置。
Q3:
A3:漏选了A项,字符串数组的初始化后面必须要加{ }
。详情可继续参照java字符串数组初始化和赋值
其他
随着学习内容的增多,我们在之后的学习过程中难免会出现对前面的知识出现模糊的情况,这并不可怕,其实,这反而是一件好事,帮助我们了解自己对于前面知识点的漏洞,随后进行查漏补缺,会对整个知识体系的掌握有很大的好处。
另外,自己要学会对比总结学习,所谓对比总结就是对比一些很相似但又不同的知识点,并总结他们的相同点和不同点,这样知识会掌握的更加牢固。
还有,通过本周的考试,自己明显吃力了很多,应该自己尝试编代码,而不是一味地敲书上的代码,应该多实践,多动手,理论+实践。
学习进度条
~ | 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第三周 | 1716/1500 | 1/2 | 30/90 |
参考资料
20165203《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 ...
随机推荐
- Python pytagcloud 中文分词 生成标签云 系列(一)
转载地址:https://zhuanlan.zhihu.com/p/20432734工具 Python 2.7 (前几天试了试 Scrapy 所以用的 py2 .血泪的教训告诉我们能用 py3 千万别 ...
- static的应用
静态变量.静态代码块.静态方法.非静态方法的区别: 执行顺序:静态变量和静态代码块是按照先后顺序执行的,即在类加载的时候就执行的,属于自动执行的.使用场景:就是一些全局常量,在开始的时候就需要加载的. ...
- struts的namespace理解
转载: namespace决定了action的访问路径,默认为"",可以接受所有路径的action namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的acti ...
- Docker swarm 使用服务编排部署lnmp
一.简介 目的:在Docker Swarm集群中,使用stack服务编排搭建lnmp来部署WordPress 使用私有仓库的nginx和php镜像 mysql使用dockerhup最新镜像 使用nfs ...
- Lvs+Keepalived实现MySQL高可用
LVS+Keepalived+MySQL高可用配置 本文所有配置前提是已实现MySQL双主备份(MySQL双主) 安装前的准备: VIP:192.168.0.201 Keepalived: Keepa ...
- 并发库应用之二 & Java原子性操作类应用
Java5的线程并发库中,提供了一组atomic class来帮助我们简化同步处理.基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增.减.赋值( ...
- mongo同步到es
刚开始我找到的方案是利用 ElasticSearch 的 River 来同步数据,并在 GitHub 上到了 MongoDB River 插件:elasticsearch-river-mongodb. ...
- HashMap源码分析-基于JDK1.8
hashMap数据结构 类注释 HashMap的几个重要的字段 hash和tableSizeFor方法 HashMap的数据结构 由上图可知,HashMap的基本数据结构是数组和单向链表或红黑树. 以 ...
- HDU 4135 容斥
问a,b区间内与n互质个数,a,b<=1e15,n<=1e9 n才1e9考虑分解对因子的组合进行容斥,因为19个最小的不同素数乘积即已大于LL了,枚举状态复杂度不会很高.然后差分就好了. ...
- Linux学习2-fork
复制进程映像 fork() 要想让进程同时执行多个函数,我们可以使用线程或从源程序中创建一个完全分离的进程,后者就像init的做法一样,而不像exec调用那样用新程序替换当前指向的线程. 我们可以通过 ...