20172313 2017-2018-2 《程序设计与数据结构》第七周学习总结

20172313 2017-2018-2 《程序设计与数据结构》第七周学习总结

教材学习内容总结

  1. 学习了如何去创建一个子类。
  2. 学习了使用protected修饰符让子类能够访问一个父类公共变量和使用保留字super来调用父类的构造方法。
  3. 学习了如何对父类的方法进行重写。
  4. 初步学习了类层次结构,了解了Object类和抽象类以及接口的层次结构。
  5. 学习了子类怎样通过一个其他方法来引用父类中的方法和变量以及常量。
  6. 初步学习了类间继承关系的设计。

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

  • 问题1:在学习接口的时候就有这样一个问题,接口和抽象类的区别和使用到底有什么不同。现在学习到了这一章,想要弄明白并在这里记录下来以便日后的复习。
  • 问题1解决方案:

    在语法方面:抽象类
    1.由abstract关键词修饰的类称之为抽象类。
    2.抽象类中没有实现的方法称之为抽象方法,也需要加关键字abstract。
    3.抽象类中也可以没有抽象方法,比如HttpServlet方法。
    4.抽象类中可以有已经实现的方法,可以定义成员变量。
    接口
    1.由interface关键词修饰的称之为接口;
    2.接口中可以定义成员变量,但是这些成员变量默认都是public static final的常量。
    3.接口中没有已经实现的方法,全部是抽象方法。
    4.一个类实现某一接口,必须实现接口中定义的所有方法。
    5.一个类可以实现多个接口。

  • 简单来说,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。除此之外,还有设计层次上的区别,由于知识的欠缺,在这里尚未引用,在本博客的末尾附上链接便于以后的查看。
  • 问题2:在最开始看教材的时候,看到了这样的话:一般情况下,构造方法的第一行应该用super引用调用父类构造方法。如果不存在这样的调用,则java会自动在构造方法的最开始处产生一行super()调用。 并不理解这段话到底想要表达的是什么。
  • 问题2解决方案:在做练习的时候也遇到了这样的问题,在下面代码调试中的问题有所体现,在代码的编写和练习中也逐渐理解和体会。
  • 问题3:在刚开始学习的时候,我以为子类是可以直接调用父类中所有的方法和变量,后来才发现是不对的。在看例题9_12的时候更加肯定了我的想法。
  • 问题3解决方案:
  1. 关于私有成员变量
    无论父类中的成员变量是私有的、共有的、还是其它类型的,子类都会拥有父类中的这些成员变量。但是父类中的私有成员变量,无法在子类中直接访问,必须通过从父类中继承得到的protected、public方法(如getter、setter方法)来访问。
  2. 关于静态成员变量
    无论父类中的成员变量是静态的、还是非静态的,子类都会拥有父类中的这些成员变量。
  3. 关于被子类覆盖的成员变量
    无论父类中的成员变量是否被子类覆盖,子类都会拥有父类中的这些成员变量。

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

  • 问题1:在做课后习题9_1的时候,编译的时候无法通过,提示我需要标识符。
  • 问题1解决方案:我觉得应该是我这行代码的语法有问题,所以我又修改成了如下的格式。
  • 问题2:我当时对保留字super的理解还不到位,不理解要在子类的构造方法的第一行就要用super引用,再次对代码进行修改,果然就没有再出什么问题了。ヽ( ̄▽ ̄)?
  • 问题2解决方案:

代码托管

上周考试错题总结

  • 错题1: In Java, rrays are
    A . primitive data types
    B . objects
    C . interfaces
    D . primitive data types if the type stored in the array is a primitive data type and objects if the type stored in the array is an object
    E . Strings
  • 解析 在Java中,数组是作为对象实现的。 该变量是存储整个数组的内存块的引用变量。 但是,使用记号名称[index]而不是消息传递来访问数组。
  • 原因:这道题还是在学习的时候对数组的具体概念理解不清...
  • 错题2: If an int array is passed as a parameter to a method, which of the following would adequately define the parameter list for the method header?
    A . (int[ ])
    B . (int a[ ])
    C . (int[ ] a)
    D . (int a)
    E . (a[ ])
  • 解析 该参数的定义与变量最初声明的一样,类型参数名称。 这里的类型是int [],参数是a。
  • 原因:这道题是疏忽了,不小心就选错了。
  • 错题3: If a and b are both int arrays, then a = b; will
    A . create an alias
    B . copy all elements of b into a
    C . copy the 0th element of b into the 0th element of a
    D . return true if each corresponding element of b is equal to each corresponding element of a (that is, a[0] is equal to b[0], a[1] is equal to b[1] and so forth) and return false otherwise
    E . return true if a and b are aliases and return false otherwise
  • 解析 “=”是一个赋值运算符。 如果这两个变量都是基元,那么左边的变量会得到右边变量的副本(所以如果a和b是int值并且b = 5,那么a就变成5)。 但是,由于a和b是数组,所以引用变量a被设置为引用变量b,导致a和b引用内存中的同一个数组,或者它们现在是彼此的别名。
  • 原因:书本上的内容没有理解透彻。
  • 错题4: In Java, an array can only store one type of data. For instance, you cannot create an array that stores both double and String values.
    A . true
    B . false
    解析 数组被称为同类型。 这意味着存储在数组中的值的类型对于每个元素都必须是相同的。 该类型由声明决定。 所以,int [] x仅使x为int数组。 所以,没有数组可以存储double和字符串。
  • 原因:在学习教材时误把可变参数长度理解成可以同时储存不同类型的值了。
  • 错题5: Just as arrays can only have a fixed number of elements, set at the time the array is declared, a parameter list also can only have a fixed number of elements, set at the time the method is declared.
    A . true
    B . false
  • 解析 Java为可变长度参数列表提供了特殊符号。 省略号(...)用于指定可变长度参数列表。
  • **原因:可变长度参数理解混淆。

结对及互评

点评模板:

  • 博客中值得学习的或问题:

    • 排版精美,对于问题研究得很细致,解答也很周全。
  • 代码中值得学习的或问题:
    • 代码写的很规范,思路很清晰,继续加油!

点评过的同学博客和代码

  • 本周结对学习情况

    • 20172332
    • 结对学习内容
      • 第9章 继承

其他

这周的内容从自身感觉来说并没有那么难,学习起来也没有前几周那样吃力,但由于这周还有实验课的缘故,所以学习任务并不算轻,好在学习起教材上的内容时没有出现什么麻烦,在进行代码调试的时候也没有出现什么大的问题。希望在以后的学习中继续努力,继续进步!

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 126 1/1 20/20
第二周 388/466 1/2 15/35
第三周 706/1162 1/3 17/52
第四周 1104/2266 1/4 20/72
第五周 1126/3392 1/5 15/87
第六周 906/4298 1/6 20/107
第七周 1233/5531 1/7 20/127
  • 计划学习时间:20小时
  • 实际学习时间:20小时
  • 改进情况:
    相比于其他同学的学习状况来说,实在是感到自惭形秽,感到自己的学习力度还不够,希望在以后的学习生活中继续努力,多学Java,多敲代码,多学习,走向人生巅峰!

参考资料

原文地址:https://www.cnblogs.com/yu-kunpeng/p/8909104.html

时间: 2024-10-12 07:15:22

20172313 2017-2018-2 《程序设计与数据结构》第七周学习总结的相关文章

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

学号 20172326 <程序设计与数据结构>第九周学习总结 教材学习内容总结 图:图(Graph)是一种复杂的非线性结构,在图结构中,每个元素都可以有零个或多个前驱,也可以有零个或多个后继,也就是说,元素之间的关系是任意的.与树的区别在于树中的一个结点只有一个前驱,也就是说只有一个父结点.但图中的顶点(结点)是没有这种限制关系的. 无向图:边为无需结点对的图.也就是说,现有两个顶点A.B.(A,B)与(B,A)效果相同.当两个顶点之间有边连接,也就是说这两个顶点是邻接的,也称作邻居.一个顶点

20172305 2017-2018-2 《程序设计与数据结构》第一周学习总结

20172305 2017-2018-2 <程序设计与数据结构>第一周学习总结 教材学习内容总结 本书的第一章简单的介绍了计算机和JAVA的历史,基础内容很多,代码的讲解还没用正式进入,本周一直在做敲代码的准备,简单敲了老师给的"Hello World!"以及书后的PP1.3.PP1.4等简单的小程序. 教材学习中的问题和解决过程 问题1:三种不同类型的错误,运行错误和逻辑错误的混淆 问题1解决方案:针对EX1.20的"希望做加法时却做里乘法"进行了网上

20172314 2017-2018-2 《程序设计与数据结构》第一周学习总结

20172314 2017-2018-2 <程序设计与数据结构>第一周学习总结 教材学习内容总结 本书第一章为计算机系统概述,前面是一些计算机相关的基础知识,让我对计算机有了一个总体的认识,不再是一片空白了,对主存储器和CPU影响深刻,主存储器用于保存程序和数据,CPU执行程序指令.在接下来的Java编程语言与程序开发部分,开始看的时候有点迷茫,不是很理解,后来先按照作业中附带的流程完成一些代码托管之后,接触了完整的简单的程序之后,再回过头来看书,看到的一些陌生的名词在脑海中就有了实际的对应,

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

20172317 2017-2018-2 <程序设计与数据结构>第一周学习总结 教材学习内容总结 重新温习了一遍计算机的基础 总算了解了局域网广域网因特网万维网这些东西之间的区别了 通过URL的例子知道了网址各个部分的含义 对Java编程语言和程序开发有了一个粗浅的了解 教材学习中的问题和解决过程 问题:练习题SR1.13出现了答案与题目不相符的情况 问题解决方案:题中有个选项是"网卡",答案中没有,反而有个题目没有的选项"调制解调器"(俗称"

20172322 2017-2018-2 《程序设计与数据结构》第二周学习总结

20172322 2017-2018-2 <程序设计与数据结构>第二周学习总结 教材学习内容总结 了解了print与println的区别 了解了字符串的拼接可以用+来完成 了解了转义字符的使用 学会了使用赋值 学会使用部分算术运算符 学会了使用Scanner来实现交互性 教材学习中的问题和解决过程 问题1:在最初接触赋值时对foalt和double的赋值范围不了解 问题1解决方案:使用万能的度娘后看到一个高赞答案后有了了解 问题2:在提前预习时看到2.7图形后敲入的代码无法执行 问题2解决方案

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

20172328李馨雨<程序设计与数据结构>第二周学习总结 又到周五,李馨雨同学要开始写博客了.让我们开始吧!(????) 教材学习内容总结 1.首先是String类定义的字符串,然后是print和println的区别.转义字符的学习.(让我印象深刻的\b[回车符]在字符串结尾不显示哈哈,及其更新的\t[换行符],还有在课堂上真正明白了什么是回车.) 2.了解变量.常量.赋值语句.变量:保存数据的内存单元.常量:坚定自己不会变的数据!除非你用java的反射(有点复杂,改权限.去修饰符等等.没实

20172327 2017-2018-2 《程序设计与数据结构》第二周学习总结

20172327 2017-2018-2 <程序设计与数据结构>第二周学习总结 教材学习内容总结 字符串的拼接和转义序列的使用 变量的声明和使用 讨论语法及表达式的处理 定义数据转换类型和实现类型转换的机制 创建Scanner类 教材学习中的问题和解决问题 暂无 代码学习中的问题和解决过程 问题1:在提交过程中,突然遇到无法上传的情况 问题2解决方案:通过上网查找,输入git pull之后弹出一个编辑框,选择关闭之后,再次用git push就成功了. 问题2:在按照例题2.10打代码时,Jav

学号20172328《程序设计与数据结构》第九周学习总结

学号20172328<程序设计与数据结构>第九周学习总结 教材学习内容总结(异常和递归) 第11章:异常 1.[异常处理]: 一个异常:是一个定义非正式情况或错误的对象,由程序或者运行时环境抛出,可以根据需要捕获和处理. 错误:错误类似于异常,但是错误代表不可恢复的问题并且必须捕获处理. 2.[处理异常的三种方法]:①根本不处理异常②当异常发生时处理异常③在程序的某个位置集中处理异常. 3.[未捕获的异常]:如果程序中不处理异常,则程序将非正常的终止运行,并产生关于描述在何处发生什么异常的信息

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

学号 20172326 <程序设计与数据结构>第九周学习总结 教材学习内容总结 异常(exception):定义非正常情况下或错误的情况的对象,由程序或运行时环境抛出,可根据需要进行相应的捕获处理. 异常与错误的区别:错误代表不可恢复的问题并且必须捕获处理.而异常可以忽视,或者使用try语句处理,或调用更高级的方法. 可检测异常与不可检测异常:可检测异常必须由方法捕获,或者必须在可能抛出或传递异常方法的throws子句中列出来.在方法定义的声明头中追加一条throws子句.不可检测异常不需要使

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

20172322 2017-2018-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 异常 学会了使用try-catch来实现未捕获的异常的处理.可以使得异常被捕获进而不导致程序出现错误退出.使用try写入可能产生异常的语句,使用catch来编写在捕获异常后继续执行的代码(可以为空). "未捕获的异常"指在编译过程中不会被编译软件显示异常但是在运行时会出现异常导致程序直接退出,例如:"ArithmeticException"."In