学号20155308 2006-2007-2 《Java程序设计》第4周学习总结

教材学习内容总结

6.1 何谓继承

  • 继承基本上就是避免多个类间重复定义共同行为。
    许多类之间具有相同的属性与功能重复在程序设计上,就是不好的信号。如果有多个类具有重复的程序代码,那就要修改类,造成维护上的不便。这种情况下,就可以将相同的代码提升为父类。利用了继承的思想。
  • 赋值: 「=」 右边 ISA左边,否则要强制类型转换。
    子类只能继承一个父类,子类与父类间会有is-a(是一种)关系。但是需注意程序编译时是从右往左读的。所以一下这种情况无法通过编译。
  • 多态
    继承可以复用代码,更大的用处是实现「多态」
    封装是继承的基础,继承是多态的基础
    「用父类声明对象引用,用子类生成对象」就有了多态

6.2 继承语法细节

  • public/package/protected/private:
    被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
    private、无关键字、protected、public权限依次递增。
  • super与this:
    this()和super()只能择一调用,并且要写在构造函数第一行执行。

7.1 何谓接口

  • 接口(interface)定义行为:操作接口则表示“拥有行为”,某个类可以同时拥有很多接口

7.2 接口语法细节

  • 接口中的public abstract可以省略
  • 接中可以使用extends继承接口,并且可以继承多个接口
  • 匿名内部类与Lambda
  • JDK8 前在匿名内部类中访问局部变量,则该局部变量必须为final
  • emum

教材学习中的问题和解决过程

  • Square(正方形)类继承Rectangle(矩形)类合适吗?
    正方形类正常不能继承矩形类

    class Rectangle { ... }
    class Square extends Rectangle {
    int size;
    Square(int s) { size = s; }
    }

https://www.zybang.com/question/1bf624e45eb02e50bb292b9946c40eb9.html?ssl=1

  • 接口与抽象类的区别?

      共性:都是不断抽取出来的抽象的内容。A:成员特点抽象类:成员变量 可以变量,也可以常量成员方法 可以抽象,也可以非抽象构造方法 有接口:成员变量 只能是常量成员方法 只能是抽象B:继承或者实现关系特点a:类与类的关系继承关系,只能单继承,可以多层继承。b:类与接口的关系实现关系,可以单实现,也可以多实现。还可以在继承一个类的同时,实现多个接口。c:接口与接口的关系继承关系,可以单继承,也可以多继承。C:设计区别抽象类中定义的是体系的共性内容。表达的是:is a的关系。接口中定义的是体系的扩展功能。表达的是:like a的关系。
  • 既然在java中,子类只能继承一个父类,那如果在定义类时没有使用extends关键字指定继承任何类,则说明了什么?

    解决方案1:
    在java中,任何类追溯至最上层父类,那一定是java.lang.Object,也就是java中的所有对象。所以定义类时没有使用extends继承则一定是继承了java.lang.Object。

代码调试中的问题和解决过程

  • 在git的过程中,我发现git add .和git commit ..之后没有什么问题,但是在git push后系统提示我的上传出现了问题,这个是我以前并没有出现的问题,我就将git的过程重新重来一遍,发现在这一步

    系统提示我error: Could not remove config section 'remote.origin'于是,我参考了一下这两篇博客
    http://blog.csdn.net/q908555281/article/details/48677159

    http://www.cnblogs.com/rebrust/p/5348866.html?from=singlemessage&winzoom=1
    经过多次尝试,将我的代码推了上去。

代码托管

  • 代码量截图:

上周考试错题总结

  1. Java中,=与==并没有在基本类型和类类型的不同。(OK)
  • 理解情况:对象之间的==符是用来比较是否是一个对象的两个引用。
  • 错误原因:没有理解好=和==的含义。
  1. 可以使用java.util.Arrays的(fill())方法把数组初始化成相同的值。
  • 理解情况:见书P98,可使用java.util.Arrays的fill()方法来设定数组的元素值。
  • 错误原因:看书的时候太马虎,没有注意一些固定语法的使用,自己在编程的时候也没有多加注意。
  1. Java中的多维数组都是由(一维数组组成)。
  • 理解情况:见二维数组的介绍,可看出多维数组是由一维数组组成。例如可将int[][] cords看成是++int[]++[]cords.
  • 错误原因:在学习的时候没有关注数组的本质。
  1. “30”转化为byte类型的30的语句是(Byte.parseByte(“30”);)。
  • 理解情况:使用调用方法。
  • 错误原因:我的思想还是停留在C语言的层面,没有注意java与C 的不同之处。
  1. Java中成员方法中引用成员变量,要使用(this)关键字。
  • 理解情况:在Java中,this()代表了调用另一个构造函数,所以在成员方法中引用成员变量时,需要使用到this关键字。
  1. 被声明为(static)的成员,不属于某个对象,而是属于类。
  2. 两个Integer对象比较大小,可以使用(comareTo())方法 。
  • 理解情况:见书P91,Integer提供compareTo()方法,可以另一个Integer对象进行比较,可返回更多信息。同时要注意区别:equals() 用于引用数据类型比较是否指向相同的对象,compareTo()用于对象的大小。
  • 错误原因:compareTo是java中的新的比较方法,要注意学习,同时注意其返回值是1和-1.

其他

这一周我学习了继承与多态、接口与多态。代码量迅速增加,并且学习难度也有所增强。在继承的使用上,使得我们的编程归向了统一化和简便化,同时在语法细节中,运用到了之前所大致了解到的final等,对这些语法细节有了应用。而接口也是一种全新的操作。通过这两章的学习,将我们的基本类型学习淡化了,反倒增多了类类型的学习,自己应该多加注意,才能学习好这方面的知识。

学习进度条

代码行数(新增积) 博客量(新增积) 学习时间(新增积) 重要成长
目标 5000行 30篇 400小时
第四周 300/1300 2/9 30/90 了解了继承与多态、接口与多态

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难,软件工程 估计方法

  • 计划学习时间:15小时

  • 实际学习时间:18小时

  • 改进情况:这一周的学习感到有点吃力,我就把前面的知识又复习了一遍,重新的学习让我对之前的知识又有了新的了解,感觉掌握得更深了。

  • 有空多看看现代软件工程 课件 软件工程师能力自我评价表

参考资料

  • Java学习笔记(第8版)

  • 《Java学习笔记(第8版)》学习指导

转载于:https://www.cnblogs.com/JIUSHA/p/6582119.html

# 学号20155308 2006-2007-2 《Java程序设计》第4周学习总结相关推荐

  1. 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结

    20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...

  2. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  3. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  4. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

  5. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

  6. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  7. 20175208 《Java程序设计》第九周学习总结

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

  8. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  9. 20155313 2016-2017-2 《Java程序设计》第二周学习总结

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  10. 20155226 2016-2017-2 《Java程序设计》第一周学习总结

    20155226 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一周主要学习了一二章的内容,也浏览了剩余章节,以下是本周主要学习内容总结 1.首先了解了[ ...

最新文章

  1. mysql replication principle--转
  2. 网络计算机室电源线怎么布,网吧综合布线(电源和网络)经验谈
  3. wacom mac驱动_MAC系统装Wacom手绘板的方法及注意事项
  4. Linux系统编程7:入门篇之Linux项目自动化构建工具-Make/Makefile的超强使用指南
  5. python3 重新运行本程序_python3+PyQt5重新实现QT事件处理程序
  6. ngnix的简单转发请求之server和location配置详解
  7. 【leetcode】25. Reverse Nodes in k-Group 链表按K分段逆序
  8. [转载][工具]Eclipse Console 加大显示的行数,禁止弹出
  9. 从头开始学JavaScript (四)——操作符
  10. linux装软raid,LINUX中软RAID的实现方案
  11. 同一个WiFi,电脑不能访问CSDN网站,手机却可以,换一个网络电脑就可以是什么原因?
  12. 使用VB6.0编写管家婆服装----百胜服装ERP数据转换程序和通用SQL server查询程序的心得
  13. 磁共振成像原理-物理基础2(质子在外部磁场的情况)
  14. mysql双机热备份
  15. 恩智浦杯(飞思卡尔)全国大学生智能车竞赛摄像头简单的图像失真矫正技术原理与实现(透视变换)
  16. 广东查出2190名裸官
  17. 知乎网站2010年12月开放,三个月后获得了李开复的天使投资
  18. python re 查找字符串中是否含有汉字
  19. 3万字长文带你轻松入门视觉Transformer
  20. 东芝存储器株式会社计划搬迁总部

热门文章

  1. 全局最小割Stoer-Wagner算法
  2. 教你与客户成交的24种技巧
  3. 使用ApplicationContext类来完全封装闪屏功能
  4. convert py to pyd
  5. 澳大利亚通信软件服务公司 Whispir 完成1175万美元 A 轮融资
  6. Html5-audio标签简介及手机端不自动播放问题
  7. 启用Mac系统读写NFTS磁盘
  8. 多线程生产者,消费者例题
  9. ERP系统容灾方案对ERP生产系统的影响
  10. 客户端可以连接 .Net程序不能连接SQL Server 2000