• 20182323 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结


    目录

    学号20182323 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结

    教材学习内容总结

    • 1.对象和类的关系;(类是对象的蓝图)
    • 2.理解对象的状态(属性)和行为(操作);
    • 3.理解类的分配职责和一些类的构造方法;
    • 4.了解UML类图(统一建模语言);
    • 5.公有和私有可见性修饰符(public、private);
    • 6.理解方法定义和方法声明;
    • 7.return语句的使用;
    • 8.静态方法的调用;
    • 9.类之间的关系(依赖、聚合、继承);(还未掌握)
    • 10.方法设计(方法分解、方法参数的传递);(还未掌握)
    • 11.方法重载(参数类型、个数不同);
    • 12.测试和调试(jdb、print语句)。

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

    • 问题1:对成员变量,局部变量,静态变量之间的区别理解不够。

    • 问题1解决方案:查阅网上资料得知:它们之间的区别可参考下表

    • 问题2:对于课本中的return语句的用法有些模糊。

    • 问题2解决方案:结合上周阅读的资料和课本内容,return语句的用法总结如下:

      1.由保留字return再加一个表达式组成,表达式代表要返回的值;

      2.return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行;

      3.return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致;

      4.return 后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。

    • 问题3:看了课本上的算法中的伪代码,想要加深理解伪代码。

    • 问题3解决方法:查找相关资料,总结如下:

      1.伪代码由中文和英文混合组成,能够更好地表达算法

      2.在伪代码中,每一条指令占一行(else if,例外)。指令后不跟任何符号(Pascal和C中语句要以分号结尾)。书写上的“缩进”表示程序中的分支程序结构;

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

    • 问题1:在Ubuntu终端对代码进行码云git时,显示更新被拒绝,因为远程仓库包含您本地尚不存在的提交。

    • 问题1解决方案:通过查阅资料得知,原来是我之前通过网页向仓库提交过文件。解决方法是输入命令git pull origin master --allow-unrelated-histories
      这样对本地仓库和远程仓库进行合并冲突后,就可以正常愉快的使用 git push命令啦~

    代码托管

    上周考试错题总结

    • 问题1: If a programmer writes a class wanting it to be extended by another programmer, then this programmer must(如果一个程序员写了一个类,这个类想要被其他程序员拓展,那么这个程序员应该?)

      A . change private methods and instance data to be protected(将私有方法和示例数据改为protected型)

      B . change public methods and instance data to be protected(把公有方法示例数据改为protected型)

      C . change all methods to be protected(改变所有的方法为protected型)

      D . change the class to be protected(将类改变为protected型)

      E . none of the above, the programmer does not have to change anything(上述没有正确答案,这个程序员不需要改变任何)

    • 问题1解析和理解:正确答案A。我当时选择E。声明为protected的部分可以由定义它们的类的任何子类访问,而声明为private的部分不能被任何其他类访问。因此,以前定义的private项必须受到保护。以前定义的public项应该保持,以便所有其他类仍然可以访问这些public项。以前定义的private不应该公开,因为这将允许所有类访问它们,而不仅仅是子类。

    • 问题2:Which of the following is true regarding Java classes?(关于java类,下面哪一个是正确的?)

      A . All classes must have 1 parent but may have any number of children (derived or extended)
      classes(所有的类都必须有一个父类但是可以有无限的子类)

      B . All classes must have 1 child (derived or extended) class but may have any number of parent classes(所有的类都必须有一个子类,但可以有无限的父类)

      C . All classes must have 1 parent class and may have a single child (derived or extended) class(所有的类都必须有一个父类和一个子类)

      D . All classes can have any number (0 or more) of parent classes and any number of children (derived or extended) classes(所有的类可以有任何数量的父类和子类)

      E . All classes can have either 0 or 1 parent class and any number of children (derived or extended) classes(所有类都有1个或者0个父类和无限多的子类)

    • 问题2解析和理解:正确答案选A,我当时选择E。老师在课堂上强调的时候才对这个问题有了更深刻的了解。object类是所有类的祖先,也就是说,所有的类都是object类派生出来的。因此答案选A。

    • 问题3:A variable declared to be of one class can later reference an extended class of that class. This variable is known as(一个被声明为一个可变类的变量可以引用该类的扩展类。这个变量被称为)

      A . protected

      B . derivable

      C . cloneable

      D . polymorphic

      E . none of the above, a variable declared to be of one class can never reference any other type of class, even an extended class

    • 问题3解析和理解:正确答案选D,我当时选择的是A。,当时还没学到多态,看到继承一章的关键词protected就果断下手了。其实多态表示变量可以有多种形式存在。在一般情况下,Java被强制定义为,一个变量,一旦声明为某种类型,就永远不能改变其为不同的类型。唯一的例外是多态变量可以是任何类型的派生类(尽管不是在同一时间,变量也可以从一种类型转换为另一种类型)。

    • 问题4: Using the reserved word, super, one can(用保留字super,能够)

      A . access a parent class'constructor(s)(访问父类构造函数)

      B . access a parent class'methods and instance data(访问父类方法和实例数据)

      C . access a child class'constructor(s)(访问子类构造函数)

      D . access a child class'methods and instance data(访问子类方法和实例数据)

      E . none of the above(没有正确选项)

    • 问题4解析和理解:正确答案选择E。我当时选择A。本题关键点在于A 和B答案都是对的,所以应该将两个答案结合起来才行,当时只看了一个答案草草完事,非常的不细心,以后要注意。

    • 问题5: Why shouldn't an abstract method be declared final?(为什么不应该把一个抽象的方法声明为final呢?)

      A . There's nothing wrong with doing so(这样做没错)

      B . Abstract methods cannot be overridden and they must be if a concrete class ever is to be instantiated(抽象方法不能被覆盖,它们必须是要实例化的具体类)

      C . So long as the Abstract method never actually is used in by any other method, there's no problem with doing this(只要抽象方法从来没有被任何其他方法使用过,那么做这个就没有问题了)

      D . So long as the Abstract method is declared in a Class (not an Interface), there's nothing wrong with doing this(只要抽象方法在类中声明(而不是接口),那么做这件事就没有什么错)

      E . None of the above(没有正确选项)

    • 问题5解析和理解:正确答案B,我当时的选项E,我也不知道我为什么要选E。要使抽象方法成为具体的方法,它必须被覆盖。声明一个方法是final的,就让其不可能被覆盖。因此不能。

    • 问题6: Interface classes cannot be extended but classes that implement interfaces can be extended.(接口类不能被扩展,但是实现接口的类可以被扩展)

      A . true

      B . false

    • 问题6解析和理解: 正确答案选B,当时我选的是A,属于对概念不清楚。任何类都可以被扩展,无论它是一个接口,还是实现一个接口,或者两者都没有。唯一的例外是,如果该类被显式地用“final”这个词进行修饰,在这种情况下,它不能被扩展

    结对及互评

    点评模板:

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

      • 加入自己学习过程中的图片,给人印象深刻。
      • 对问题剖析到位,有深入学习。
    • 代码中值得学习的或问题:

      • 代码排版越来越规范,便于阅读
      • 代码中适当加入注释会更好
    • 基于评分标准,我给本博客打分:13分。得分情况如下:

    1. 正确使用Markdown语法(加1分):

      • 不使用Markdown不加分
      • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
      • 排版混乱的不加分
    2. 模板中的要素齐全(加1分)

      • 缺少“教材学习中的问题和解决过程”的不加分
      • 缺少“代码调试中的问题和解决过程”的不加分
      • 代码托管不能打开的不加分
      • 缺少“结对及互评”的不能打开的不加分
      • 缺少“上周考试错题总结”的不能加分
      • 缺少“进度条”的不能加分
      • 缺少“参考资料”的不能加分
    3. 教材学习中的问题和解决过程(2分)

    4. 代码调试中的问题和解决过程(2分)

    5. 本周有效代码超过300分行的(加0分)

    6. 其他加分:

      • 周五前发博客的加1分
      • 感想,体会不假大空的加1分
      • 进度条中记录学习时间与改进情况的加1分
      • 有动手写新代码的加1分
      • 错题学习深入的加1分
      • 点评认真,能指出博客和代码中的问题的加1分
      • 结对学习情况真实可信的加1分

    点评过的同学博客和代码

    其他(感悟、思考等,可选)

    通过自学深入了解Java的知识,结合教材内容,真正明白了以前没明白、死记硬背的东西。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 10000行 30篇 400小时
    第一周 77/77 2/2 15/15
    第三周 424/501 3/5 30/30
    第四周 393/894 2/7 30/30
    • 计划学习时间:25小时

    • 实际学习时间:20小时

    • 改进情况:国庆抓紧弥补缺漏

    参考资料

    成员变量、类变量、局部变量的区别

    Java 对象和类

  • 相关阅读:
    『Delphi』字符串操作——返回子串出现的位置
    2007:远见、劲取、专注
    『转载』个人博客吸引风投关注成可盈利业务
    [和管子对话] 1 200745/对面向对象的你言我语
    『Delphi』File not found的解决办法
    Ruby学习1字符串
    聚集表(clustered table)data page中的数据行可以无序
    通过DBCC PAGE查看页信息验证聚集索引和非聚集索引节点信息
    查看SQL Server Resource Database以及修改系统表
    SQL Server的还原(2)——STOPAT
  • 原文地址:https://www.cnblogs.com/caoqian1314/p/11614452.html
Copyright © 2020-2023  润新知