王彪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周学习总结相关推荐

  1. 20172304 《程序设计与数据结构》第九周学习总结

    20172304 <程序设计与数据结构>第九周学习总结 教材学习内容总结 本章是第十五章,主要介绍了图的概念. 首先我来介绍一下图的基本结构. 从逻辑上讲,图是由边和结点组成的,在我的理解 ...

  2. 20162302 《程序设计与数据结构》第一周学习总结

    20162302 2017-2018-1 <程序设计与数据结构>第一周学习总结 教材学习内容总结 很多情况下时间和空间不可兼得.在不同的情况下,要么用时间换空间,要么用空间换时间. 引出算 ...

  3. 20172315 2017-2018-2 《程序设计与数据结构》第九周学习总结

    学号 2017-2018-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 异常是定义一个非正常情况或错误的对象,由程序或运行时环境抛出. 异常与错误不同,错误代表不可恢复的问题 ...

  4. 20172304 《程序设计与数据结构》 第二周学习总结

    20172304 <程序设计与数据结构>第二周学习总结 教材学习内容总结 本周主要学习了第三章和第四章的内容 第三章 集合概述--栈 3.1集合 集合是一种聚集组织了其他对象的对象. 集合 ...

  5. 20162329张旭升 2016-2017-2 《程序设计与数据结构》第九周学习总结

    20162329张旭升 2016-2017-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 1.建立数据库连接:我们是通过老师给的XAMPP程序来配置自己的数据库,然后根据教程 ...

  6. 20162329 2017-2018-1 《程序设计与数据结构》第九周学习总结

    第九周学习总结 一.学习目标 二叉查找树的理解 二叉查找树的实现 平衡二叉查找树 哈夫曼树的实现 堆的理解 堆的实现 二.学习内容 1.二叉查找树 思路: 二叉查找树与一般二叉树的区别在于,二叉查找树 ...

  7. 20162303《程序设计与数据结构》第一周学习总结

    学号 2016-2017-2 <程序设计与数据结构>第1周学习总结 教材学习内容总结 本周学习了基本的JAVA知识,虽然比较基础,但是在实际过程中还是出现了许许多多的问题,代码一遍遍的敲错 ...

  8. 20162330 2017-2018-1《程序设计与数据结构》第二周学习总结

    2017-2018-1 学习总结目录: 1 2 3 5 6 7 9 10 11 12 目录 0. 本周学习内容总结 0.1 Comparable接口与Comparator接口的使用 0.2 泛型方法设 ...

  9. 20172323 2017-2018-2 《程序设计与数据结构》第九周学习总结

    教材学习内容总结 本周学习第十一章异常和第十二章 第十一章-异常 异常是一个定义非正常情况或错误的对象,由程序或运行时环境抛出,可以根据需要进行相应的捕获和处理. 错误和异常都是对象,代表非正常情况或 ...

  10. 20172314 2018-2019-1《程序设计与数据结构》第一周学习总结

    教材学习内容总结 概述 软件工程:是一门关于高质量软件开发的技术和理论的学科,用来控制开发过程,实现高质量的软件. 软件工程的目标:正确性.可靠性.健壮性.可用性.可维护性.可重用性.可移植性.运行效 ...

最新文章

  1. github开源推荐:SuperSocket, 可扩展的 Socket 服务器框架
  2. Github项目汇总
  3. 并查集 (Union-Find)算法
  4. 长沙 · 中国1024程序员节盛况空前,500 万程序员线上线下引爆星城
  5. C语言第12轮:指针
  6. springboot整合gprc 传输对象
  7. Oracle10g expdp impdp
  8. 问题来了,个人用户可以使用短信接口吗?答案很意外
  9. IT资源书籍999999999本
  10. mac os+selenium2+chrome驱动+python3
  11. 介绍NVivo 12 Mac
  12. 【Gitee】本地push代码成功,但是不计入贡献度贡献值,该怎么处理(已解决 同理github gitlab)
  13. EXCEL常见数据处理操作(一)
  14. VB模拟满天星空闪烁的效果
  15. 云桌面-ThinVirt3-EXP操作手册(一)云桌面系统安装
  16. 神经网络机器翻译技术及应用(上)
  17. Android键盘灯亮度控制
  18. 【Multisim仿真】运放电路:反相比例运算电路
  19. fastboot命令汇总
  20. 恶意.NET安全攻防(一):使用ETW隐藏你的.NET

热门文章

  1. 页面校验请求MmEwMD(转载)
  2. (5)ES6解构赋值-函数篇
  3. UNP Chapter 19 - 多播
  4. 关于androidAsyncHttp支持https
  5. usaco-3.3-shopping-passed
  6. 用户不在sudoers文件中的解决方法 .
  7. 2013腾讯编程马拉松||HDU 4505 小Q系列故事——电梯里的爱情 水水水
  8. 视频聊天室软件的技术标准
  9. ubuntu学习日记--Lesson6:shell,bash,dash
  10. oracle 分页过程,oracle存储过程分页的完整例子