20175320 2018-2019-2 《Java程序设计》第4周学习总结
20175320 2018-2019-2 《Java程序设计》第4周学习总结
教材学习内容总结
- 本周学习了教材的第五章的内容。在这章中介绍了子类与继承,着重讲了子类继承的规则以及使用
super
、final
关键字的使用方法,介绍了方法的重写以及基于重写的面向抽象的编程方法。 - 继承是一种由已有的类创建新类的机制,子类继承一般类的属性和行为,并根据需要增加它自己的新的属性和行为。
- java使用关键字
extends
来定义一个类的子类,并不支持多重继承,Object
是所有类的祖先类。 - 子类和父类在同一个包中,子类继承其父类中不是private的变量和方法,子类和父类不在同一个包中时,子类只继承父类中的protected和public访问权限的变量及方法。
- 当用子类的构造方法创建一个子类的对象时,不仅子类中声明的成员变量被分配了内存,而且父类的成员变量也都分配了内存空间。子类中还有一部分方法是从父类继承的,这部分方法却可以操作这部分未继承的变量。
- instanceof运算符左面的操作元是对象,右面的操作元是类,当左面的操作元是右面的类或其子类所创建的对象时,instanceof运算的结果是true,否则是false。
- 子类可以通过声明与父类相同名字的变量来隐藏继承的成员变量,通过重写可以隐藏已继承的方法。
- 重写时方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同,重写方法既可以操作继承的成员变量、调用继承的方法,也可以操作子类新声明的成员变量、调用新定义的其他方法,但无法操作被子类隐藏的成员变量和方法。
- 子类一旦隐藏了继承的成员变量,那么子类创建的对象就不再拥有该变量,该变量将归关键字super所拥有。
- 当用子类的构造方法创建一个子类的对象时,子类的构造方法总是先调用父类的某个构造方法,由于子类不继承父类的构造方法,因此,子类在其构造方法中需要使用super来调用父类的构造方法。
- final关键字可以修饰类、成员变量和方法中的局部变量。final类不能被继承,final方法不允许子类重写,成员变量或局部变量如被修饰为final,则改变量为一常量,且需要在声明时指定该常量的值。
- 对象的上转型对象是子类负责创建的,上转型对象可以访问子类继承或隐藏的成员变量,也可以调用子类继承的方法或子类重写的实例方法。上转型对象操作子类继承的方法或子类重写的实例方法,如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类重写的静态方法,只能调用父类的静态方法。
- 多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能和行为。
- 对于abstract方法,只允许声明,不允许实现,而且不允许使用final和abstract同时修饰一个方法或类,也不允许使用static修饰abstract方法,即abstract方法必须是实例方法。
- 面向抽象编程可以使程序的设计者把主要的精力放在程序的设计上,而不必拘泥于细节的实现。
- 使用多态进行程序设计的核心技术之一是使用上转型对象,即将abstract类声明的对象作为其子类对象的上转型对象,那么这个上转型对象就可以调用子类重写的方法。
教材学习中的问题和解决过程
- 问题1:不知道例子5_7
super.n = n;
中的super关键字是否是必要的。 - 问题1解决方案:将该语句去掉后进行编译运行,发现结果与代码修改前是一致的。
- 问题2:不理解为什么static不可以修饰abstract方法。
- 问题2解决方案:经查找书本了解到上转型对象不能调用子类重写的静态方法。
代码调试中的问题和解决过程
- 问题1:产生了如图所示错误。
- 问题1解决方案:发现是错误行的上一行忘记添加了分号。
-问题2:产生了如图所示错误。
- 问题2解决方案:发现是没有切换到正确的文件夹中。
代码托管
上周考试错题总结
- 如果类中没有编写构造方法,系统会默认该类只有一种构造方法。
- 忽略了B选项的正确性。
其他(感悟、思考等,可选)
Java编程语言中有许多内容是环环相扣的,有时一个问题的答案可以在前面的知识点中找到,这就要求我们要熟悉基础概念,弄清楚每一个关键词,每一条语句的限制条件。另外一定要多多练习,这样才能发现一些意想不到的问题,且在使用中加深对关键词以及语法的理解。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 1002/2407 | 1/5 | 29/87 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
- 计划学习时间:20小时
- 实际学习时间:25小时
- 改进情况:多看看现代软件工程 课件 软件工程师能力自我评价表
参考资料
20175320 2018-2019-2 《Java程序设计》第4周学习总结的更多相关文章
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
随机推荐
- centos 中查找文件、目录、内容
1.查找文件 find / -name 'filename'12.查找目录 find / -name 'path' -type d13.查找内容 find . | xargs grep -ri 'co ...
- ffmpeg -i 10.wmv -c:v libx264 -c:a aac -strict -2 -f hls -hls_list_size 0 -hls_time 5 C:\fm\074\10\10.m3u8
ffmpeg -i 10.wmv -c:v libx264 -c:a aac -strict -2 -f hls -hls_list_size 0 -hls_time 5 C:\fm\074\10\1 ...
- 转载:MVC升级以后出现"当前上下文中不存在ViewBag"的问题解决
MVC升级以后出现"当前上下文中不存在ViewBag"的问题解决 把自己的项目从MVC4升级到了MVC5,结果问题一大堆,View的设计环境出现了"当前上下文中不存在Vi ...
- AngularJS 使用ng-repeat报错
[ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify uniq ...
- redis 4.0.8 源码包安装集群
系统:centos 6.9软件版本:redis-4.0.8,rubygems-2.7.7,gcc version 4.4.7 20120313,openssl-1.1.0h,zlib-1.2.11 y ...
- Vue $emit()不触发方法的原因
vue使用$emit时,父组件无法触发监听事件的原因是: $emit传入的事件名称只能使用小写,不能使用大写的驼峰规则命名
- [转]ThreadLocal使用
引言 ThreadLocal的官方API解释为: “该类提供了线程局部 (thread-local) 变量.这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线 ...
- PHP会员找回密码功能实现实例介绍
设置思路 1.用户注册时需要提供一个E-MAIL邮箱,目的就是用该邮箱找回密码. 2.当用户忘记密码或用户名时,点击登录页面的“找回密码”超链接,打开表单,并输入注册用的E-MAIL邮箱,提交. 3. ...
- Source Insight小技巧:修改Symbol Window的默认宽度
SI是个好东西,但是源代码窗口左边的符号窗口的默认宽度实在是太小,每次打开一个新的源码窗口都要重新拖放调整,很烦人.下面是一劳永逸调整Symbol Window宽度的方法. 打开一个源码窗口,将Sym ...
- 程序猿必备的10款超有趣的SVG绘制动画赏析
SVG作为时下比较新颖的技术标准,已经建立了很多基于SVG的前端项目.由于SVG在绘制路径上非常灵活,我们将很多网页上的元素使用SVG来绘制而成,有各种人物.小图标.小动画等等.今天我们收集了10个非 ...