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

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

教材学习内容总结

  • 1.用来描述类的结构及类间的关系:UML类图。了解UML这种统一建模语言,学习类名、属性(数据)、操作(方法)之间的关系
  • 2.类与对象:类是对象的蓝图。它定义的变量和方法,是由类实例化时得到的每个对象的组成部分。但是类不会为变量保留内存空间。每个对象有自己的数据空间,所以有自己的状态。
  • 3.对于编写类的分析。(实例数据、封装、可见性修饰符、访问器和修改器)。
  • 4.方法的分析。(return语句、参数、局部数据、构造方法)
  • 5.对方法设计和方法重载进行了初步的学习。

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

  • 问题1:可见性修饰符
  • 问题1解决方案:修饰符是java的保留字,用在变量或方法的定义中,指定他们的具体使用特性。而有些Java修饰符称为可见性修饰符,因为他们控制类中成员的访问权限。如public(公有的),表明可以从对象之外直接引用。又如private(私有的)来声明,则不能从其定义所在的范围外访问该变量。
  • 问题2:聚合对象
  • 问题2解决方案:聚合对象由其他对象组成,形成has-a关系
  • 问题3:this引用
  • 问题3解决方案:this通常指向当前正在运行的对象。类的非静态方法一般为类的所有对象所共有,但它通过一个具体对象来调用。所以this引用指向的对象,正是执行的方法所依赖的对象。
  • 问题4:方法的分析
  • 问题4解决方案:类由数据声明和方法声明组成,方法是一组编程语句。java程序中的方法是一个类的组成部分。方法声明首部包括返回值类型、方法名及该方法所接受的参数的列表,构成方法体的语句则定义在由花括号定界的范围内。
  • 问题5:方法的返回值
  • 问题5解决方案:方法的返回值类型必须与方法声明首部规定的返回值类型一致。定义类时,通常要定义一个构造方法以辅助创建类的实例,这个构造方法常用于初始化与每个对象有关的变量。构造方法没有任何返回类型,甚至也没有void类型。调用方法时,将把实参复制给被调方法的形参。

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

  • 问题1:Junit没有配备
  • 问题1解决方案:点击小灯泡,之后配备Junit就行了。
  • 问题2:如何在IDEA上git到码云
  • 问题2解决方案:在IDEA的菜单栏中点击settings(快捷键Ctrl+Alt+s)

代码托管

20182333 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第1张图片

上周考试错题总结

  • 1.20182333 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第2张图片
  • 解析:类是程序实体的定义,表示世界中事物/实体的类。类定义包括实例数据和方法。要使用一个类,需要实例化它。这些实例称为对象。所以,对象是类的实例。程序代码直接与对象交互,而不是类。
  • 单词:definitions(定义)instance data(实例数据)
  • 2.20182333 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第3张图片
  • 解析:局部变量是那些声明它们的方法的“局部”变量,也就是说,它们只能在方法内部访问。全局变量是那些可以从任何地方访问的变量,而参数是传递给方法的变量。可以将实例数据视为整个对象的全局变量。
  • 单词:variables(变量)accessible(可访问的)initialized(初始化)

  • 3.20182333 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第4张图片
  • 解析:声明为私有的类的所有项只能被该类中的实体访问,无论它们是实例数据还是方法。在这种情况下,由于这两个方法只从Rational的其他方法(包括构造函数)中调用,所以它们被声明为私有的,以在更大程度上促进信息隐藏。注意,答案C不是正确答案,因为reduce方法调用gcd方法,所以其中一个方法是从构造函数以外的方法调用的。
  • 单词:constructor(构造函数)division(除法)

  • 4.20182333 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第5张图片
  • 解析:对于A,值0(int)被扩大为double。在C的情况下,添加操作产生0.3,然后调用doublefoo。D中的参数列表是非法的,因为它包含两个双参数,而不是1。
  • 单词:contains(包含)

  • 5.20182333 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第6张图片
  • 解析:形式(形式参数、形式参数)是方法头中声明的那些形式。实际的参数(实际的、实际的参数)是在调用中实际传输给方法的表达式。
  • 单词:arguments(参数)parameters(参数)

  • 6.20182333 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第7张图片
  • 解析:声明任何类型的构造函数(甚至是void)都是违反语法的,因此您将收到一个语法错误。
  • 单词:syntax(语法)violation(违反)

  • 7.20182333 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第8张图片
  • 解析:语法错误的原因是它以“;”符号结束。相反,它需要在{}后面加上括号内的0或更多的指令。抽象方法将以“;”结束,但是这个头没有定义抽象方法。
  • 单词:brackets(括号)instructions(指令)
    abstract(抽象)

  • 8.20182333 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第9张图片
  • 解析:Java允许在没有构造函数的情况下定义类,但是在这种情况下有一个默认的构造函数。

点评过的同学博客和代码

  • 本周结对学习情况
    • 20182317
    • 20182318
    • 结对学习内容
      • 如何在IDEA上将代码git到码云
      • 如何使用TDD测试代码
      • 对书上教材的讨论学习

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

这周的学习让我感到有点吃力,可能是这周其他的任务有点繁忙。同时上课要认真听讲,不能开小差,课下要多看教材,多打代码。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第一周 56/56 2/2 20/20 主要学会了简单的操作Linux以及如何编写简单的java程序并将它上传到码云
第二、三周 331/407 3/5 23/43 学会了一些类和程序包的使用,也明白了C语言和Java在有些地方的区别
第四周 595/1002 2/7 20/63 学会了IDEA以及用IDEAgit码云,也学会了TDD测试
  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:这周的代码数量明显比上周多了许多,但还是有点不够,可能是因为这周其他的事情比较多吧,总之需要抽出时间多多练习。

参考资料

  • 《Java程序设计与数据结构教程(第二版)》

  • 《Java程序设计与数据结构教程(第二版)》学习指导

你可能感兴趣的:(20182333 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结)