王彪20162321 2016-2017-2 《程序设计与数据结构》第6周学习总结
王彪20162321 2016-2017-2 《程序设计与数据结构》第6周学习总结
教材学习内容总结
-1.关键概念
- 1.继承是从已有类派生一个新类的过程.
- 2.继承的目的之一是复用已有的软件.
- 3.继承在父类和子类之间建立了 is-a 关系.
- 4.保护可见性提供了继承之间最恰当的封装机制.
- 5.可以使用super引用来调用父类的构造方法.
- 6.子类可以重写(重定义)继承自父类的方法.
- 7.一个类的子类可以是一个或多个其他类的父类,这样形成了类层次.
- 8.公共特性应该放到类层次中尽可能高的位置上.
- 9.Java的所有类都直接或间接地派生于Object类.
- 10.Java程序中的每个类都继承类toString和equals方法.
- 11.抽象类不能实例化,它提供的概念可由其他类来定义.
- 12.派类于抽象父类的类必须重写父类中所有的抽象方法,否则派生的类认为抽象类.
- 13.私有成员也被子类继承,但不能通过名字直接引用。不过可以间接引用它们.
- 14.final修饰符可以用来限制继承.
-2.重点总结
- 1.构造方法不能继承.
- 2.抽象类不能生成对象
- 3.如果一个类有抽象函数,那么它一定为抽象类.
- 4.没有抽象函数也可以定义为抽象类.
- 5.在子类的构造函数当中,必须调用父类的构造函数.
教材学习中的问题和解决过程
- 问题1:在书上的程序中的某些代码不清楚作用.
public class Book{protected int pages = 1500; public void setPages (int numPages) {pages = numPages;}public int getPages (){return pages;} }
程序中有一段代码
public void setPages(int numPages) {pages = numPages;}
而在Words类实例化时并没有调用此函数,翻阅书发现还有很多相似的程序,不明所以.
解决过程:和刘先润同时遇到此问题当时都有点懵,任何问题都难不倒实践对吧,我在Words.java程序中调用此函数,发现并没有出现编译错误,而且它更改了成员变量pages的值,顿觉大悟,一个书类,可以有很多种书,文学,科学等,而不同书有不同的页数,这是很符合实际情况的,代码中首先就给pages赋值1500,但实际情况中不可能每本书都是1500页吧,所以设计此函数,反应过来后还挺简单的,每段代码都有它的可取之处。
问题2:理解 我们为了能在派生类中引用而声名一个公有变量,那么这就违背了封装的原则.
解决过程:
1.关于封装:一个对象应该是自管理的,即对象的实例数据应该仅由该对象来修改.
封装提供了一个有效的途径来保护数据不被意外的破坏。
相比我们将数据(用域来实现)在程序中定义为公用的(public)我们将它们(fields)定义为私有的(privat)在很多方面会更好。
2.关于保留字public :公有变量与封装的原则相悖,它允许定义数据的类之外的代码访问或修改数据的值.
3.继承,封装,多态,java封装的概念,理解封装问题3:重载与重写
解决过程:
1.重载:在Java中可以让多个方法使用相同的方法名但带有不同的参数列表.
2.重写:当子类中定义的方法与父类中定义的方法有相同的名字和签名时,我们说子类重写了父类中的方法.
3.Java的重写和重载机制
代码调试中的问题和解决过程
- 问题1:程序8.11中的问题
public class FoodItem{final private int CALORIES_PER_GRAM=9;private int fatGrams;protected int servings;...}
变量fatGrams为私有变量,所以他只能在所定义的类中使用,但是
public class Pizza extends FoodItem{public Pizza (int fatGrams){super (fatGrams,8);}}
而在子类Pizza中就引用了这个变量,顿觉不明
- 解决过程:并没有搞清楚,个人认为这两个fatGrams应该表示两个不同的量吧
代码托管
结对及互评
这周主要是在帮助相互理解封装的概念,结对项目还在改进,因为要拿T-shirt衫是吧
- 上周博客互评情况
- 20162306
- 20162326
- 20162314
- 20162318
- 20162322
- 20162303
其他(感悟、思考等,可选)
这周内容不是很多,但重在理解,分享发一些好地方
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第五周 | 200/1500 | 6/11 | 97/120 | |
第六周 | 200/1700 | 7/11 | 110/120 | |
第七周 | 000/0000 | 0/13 | 00/120 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:XX小时
实际学习时间:XX小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
《Java程序设计与数据结构教程(第二版)》
- 《Java程序设计与数据结构教程(第二版)》学习指导
...
转载于:https://www.cnblogs.com/wbiao21/p/6683353.html
王彪20162321 2016-2017-2 《程序设计与数据结构》第6周学习总结相关推荐
- 20172304 《程序设计与数据结构》第九周学习总结
20172304 <程序设计与数据结构>第九周学习总结 教材学习内容总结 本章是第十五章,主要介绍了图的概念. 首先我来介绍一下图的基本结构. 从逻辑上讲,图是由边和结点组成的,在我的理解 ...
- 20162302 《程序设计与数据结构》第一周学习总结
20162302 2017-2018-1 <程序设计与数据结构>第一周学习总结 教材学习内容总结 很多情况下时间和空间不可兼得.在不同的情况下,要么用时间换空间,要么用空间换时间. 引出算 ...
- 20172315 2017-2018-2 《程序设计与数据结构》第九周学习总结
学号 2017-2018-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 异常是定义一个非正常情况或错误的对象,由程序或运行时环境抛出. 异常与错误不同,错误代表不可恢复的问题 ...
- 20172304 《程序设计与数据结构》 第二周学习总结
20172304 <程序设计与数据结构>第二周学习总结 教材学习内容总结 本周主要学习了第三章和第四章的内容 第三章 集合概述--栈 3.1集合 集合是一种聚集组织了其他对象的对象. 集合 ...
- 20162329张旭升 2016-2017-2 《程序设计与数据结构》第九周学习总结
20162329张旭升 2016-2017-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 1.建立数据库连接:我们是通过老师给的XAMPP程序来配置自己的数据库,然后根据教程 ...
- 20162329 2017-2018-1 《程序设计与数据结构》第九周学习总结
第九周学习总结 一.学习目标 二叉查找树的理解 二叉查找树的实现 平衡二叉查找树 哈夫曼树的实现 堆的理解 堆的实现 二.学习内容 1.二叉查找树 思路: 二叉查找树与一般二叉树的区别在于,二叉查找树 ...
- 20162303《程序设计与数据结构》第一周学习总结
学号 2016-2017-2 <程序设计与数据结构>第1周学习总结 教材学习内容总结 本周学习了基本的JAVA知识,虽然比较基础,但是在实际过程中还是出现了许许多多的问题,代码一遍遍的敲错 ...
- 20162330 2017-2018-1《程序设计与数据结构》第二周学习总结
2017-2018-1 学习总结目录: 1 2 3 5 6 7 9 10 11 12 目录 0. 本周学习内容总结 0.1 Comparable接口与Comparator接口的使用 0.2 泛型方法设 ...
- 20172323 2017-2018-2 《程序设计与数据结构》第九周学习总结
教材学习内容总结 本周学习第十一章异常和第十二章 第十一章-异常 异常是一个定义非正常情况或错误的对象,由程序或运行时环境抛出,可以根据需要进行相应的捕获和处理. 错误和异常都是对象,代表非正常情况或 ...
- 20172314 2018-2019-1《程序设计与数据结构》第一周学习总结
教材学习内容总结 概述 软件工程:是一门关于高质量软件开发的技术和理论的学科,用来控制开发过程,实现高质量的软件. 软件工程的目标:正确性.可靠性.健壮性.可用性.可维护性.可重用性.可移植性.运行效 ...
最新文章
- github开源推荐:SuperSocket, 可扩展的 Socket 服务器框架
- Github项目汇总
- 并查集 (Union-Find)算法
- 长沙 · 中国1024程序员节盛况空前,500 万程序员线上线下引爆星城
- C语言第12轮:指针
- springboot整合gprc 传输对象
- Oracle10g expdp impdp
- 问题来了,个人用户可以使用短信接口吗?答案很意外
- IT资源书籍999999999本
- mac os+selenium2+chrome驱动+python3
- 介绍NVivo 12 Mac
- 【Gitee】本地push代码成功,但是不计入贡献度贡献值,该怎么处理(已解决 同理github gitlab)
- EXCEL常见数据处理操作(一)
- VB模拟满天星空闪烁的效果
- 云桌面-ThinVirt3-EXP操作手册(一)云桌面系统安装
- 神经网络机器翻译技术及应用(上)
- Android键盘灯亮度控制
- 【Multisim仿真】运放电路:反相比例运算电路
- fastboot命令汇总
- 恶意.NET安全攻防(一):使用ETW隐藏你的.NET