20175208 《Java程序设计》第四周学习总结
第五章主要学习内容
1.子类的继承性:
(1)子类与父类在同一包中的继承性:子类自然地继承了其父类中不是private的成员变量作为自己的成员变量。
(2)子类与父类不在同一包中的继承性:子类只继承父类中的protected和public访问权限的成员变量作为子类的成员变量。
注意:当protected类型的变量使用时,只需要变量所在的子类与父类在同一包中即可,例如:类D 是类A的子类B 的子类C 的子类,只需要类A和类D在同一包中即可。
2.子类对象的特点:
子类创建对象时似乎浪费了一些内存,因为当用子类创建对象时,父类的成员变量也都分配了内存空间,但只将其中一部分作为分配给子类对象的变量,例如,父类中的private成员变量尽管分配了内存空间,也不作为子类对象的变量,当然他们也不是父类某个对象的变量,因为我们根本就没有使用父类创建任何对象。这部分内存似乎成了垃圾一样。但是,实际情况并非如此,我们需注意到,子类中还有一部分方法是从父类继承的,这部分方法却可以操作这部分未继承的变量。
3.(1)成员变量的隐藏:
子类对象以及子类自己定义的方法操作与父类同名的成员变量是指子类重新声明的这个成员变量。
子类对象仍然可以调用从父类继承的方法操作被子类隐藏的成员变量,也就是说,子类继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量。
(2)方法重写:
重写方法既可以操作继承的成员变量、调用继承的方法,也可以操作子类新声明的成员变量、调用新定义的其它方法,但无法操作被子类隐藏的成员变量和方法。如果子类想使用被隐藏的方法或成员变量,必须使用关键词super
。
重写父类的方法时,不允许降低方法的访问权限,但可以提高访问权限(访问限制修饰符按访问权限从高到低的排列顺序是public、protected、友好的、private)。
4.final关键字:
final类不能被继承,可以修饰类、成员变量和方法中局部变量。如果用于修饰父类中的一个方法,那么这个方法不允许子类重写。用于修饰常量在运行期间不允许再发生变化。
5.对象的上转型对象:
上转型对象不能调用对象新增的变量和新增的方法,可以调用隐藏的变量,继承的变量,继承或重写的方法
子类对象的上转型对象不能调用子类重写的父类的静态方法,只能调用父类的静态方法
6.super关键字:
当子类隐藏了继承的成员变量,子类的创建对象将不拥有该变量,变量将归super所拥有。
同样,子类一旦隐藏了继承的方法,方法的调用将由关键字super负责。
7.继承与多态:
(1)继承:父类中的变量和方法被子类调用进行操作
(2)多态:父类的方法被子类重写时,产生各自的功能行为
8.关键字abstract:
对于abstract方法,只允许声明,没有方法体。
不允许用final和static修饰abstract类或方法。
abstract类不能用new运算符创建对象。但该对象可以成为其子类对象的上转型对象调用子类重写的方法。
教材学习中的问题和解决过程
(1)不理解extent的使用方法。
解决方案:通过视频学习,发现画出原题来,会清晰很多。
(2)对书上关于面向抽象编程(5.10)的解释不理解。
解决方案:发现自己还是对概念不理解,也不理解编程思路和目的。通过仔细阅读书上的解释并结合视频讲解,对于这一块有了更清楚的理解。
代码托管
心得体会
Java程序设计的课程需要自己结合视频和课本来自主学习,一些自己解决不了的问题可以来问老师,不过通常还是自己先斟酌一番,毕竟自己自主完成的还是记忆最为深刻的。我希望自己以后发现问题后不要急于问其他人,而是通过冷静下来再仔细看书,浏览视频,在网上查找,争取自己来解决问题。我利用了蓝墨云上发布的教学视频进行学习。感觉对自己的学习很有帮助,以后会有针对性多多观看这些教学视频。
上周错题总结
1.下列说法正确的是
A.在一个类的内部可以直接调用本类的对象,也可以使用关键字this来调用。
B.构造方法中使用this时,可以省略this,即将this.method()直接写成method()。
C.this不能出现在类方法中。
D.当实例成员变量的名字和局部变量的名字相同时,可以省略成员变量前的"this."和static变量前的"类名."。
解析:4.9节。D:当实例成员变量的名字和局部变量的名字相同时,不能省略成员变量前的"this."和static变量前的"类名."。
2.下列关于实例方法和类方法的叙述,正确的是
A.类方法不可以操作实例变量,因为在类创建对象之前,实例成员变量还没有分配内存。
B.当创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址。
C.实例方法不能通过类名调用,只能由对象来调用。
D.不必创建对象就可以用类名直接调用static方法。
正确答案:ABCD
所选答案:ABC
20175208 《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 ...
随机推荐
- windows 安装python pip Could not install packages due to anEnvironmentError: [WinError 5] 拒绝访问
找打 C:\Windows\System32 文件夹下面的cmd.exe点开后运行python -m pip install --upgrade pip 即解决问题了.
- nginx set变量后lua无法改值
今天在使用lua修改nginx自定义变量的时候,发现死活更改不了,如下所示: 有问题的代码 set $check "1"; rewrite_by_lua_file 'conf/ru ...
- 使用RecyclerView设置自定义分割线
在安卓开发中,RecyclerView控件来做一些列表是非常方便的,如何使用在网上很多文章,这次着重来说一下怎么设置自定义分割线: 首先,我们来看一下怎么设置默认的分割线 RecyclerView m ...
- macOS Sierra 10.12.6 odoo 10.0 开发环境配置
参考了网上的一些教程,将最终过程记录一下,其中需要的一些程序,我已经放到百度网盘: https://pan.baidu.com/s/1boKHSTL 1.抹盘安装macOS Sierra 10.12. ...
- 使用PHP几种写99乘法表的方式
首先按照规矩,还是先废话一番,对于刚学PHP的新手来讲,用php写九九乘法表无疑是非常经典的一道练习题. 但不要小看这道练习题,它对于逻辑的考验还是相当到位的. 也许有人会觉得,九九乘法表有什么难的, ...
- web.py框架之高级应用
二.高级应用 2.1 web.ctx 获取客户端信息,比如:来源页面.客户端浏览器类型等. web.ctx基于 threadeddict类,又被叫做 ThreadDict.这个类创建了一个类似字典(d ...
- G - Throw nails
来源hde4393 The annual school bicycle contest started. ZL is a student in this school. He is so boring ...
- Druid连接池(一)
介绍 Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. 支持的数据库 Druid支持所有JDB ...
- thinkphp 在本地正常,在云端ubuntu下报控制器不存在
thinkphp 在本地正常,在云端ubuntu下报控制器不存在的错 ubuntu是严格区分大小写的,本地的服务器可能对大小写要求没有那么严格, thinkphp的控制器的文件夹默认是小写字母,如果你 ...
- 21.react 组件通信
状态属性可以修改 this.setState()中可以写对象,也可以写方法 <script type="text/babel"> class Test extends ...