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

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

教材学习内容总结

  • 学会使用单元测试进行测试代码。
  • 学会TDD代码测试。
  • 学会是使用编写类,用public、void等编写,调用类的方法进行运算。
  • 学习类与类的关系,继承,聚合,关联等等,来厘清关系。
  • 学习UML图,设定方法、类、数据。
  • 学会方法调用和包装方法的使用。
  • 学会类与类的继承,还有接口的选择。

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

  • 问题1:在编写类时用总类下又定义了一个public来定义一个变量,后来在另一个类中引用这个方法,却没有用到这个变量产生的变化
  • 问题1解决方案:在类中设置使用变量时,会有封装问题和归类问题,在类之下的方法中定义的变量无法在其他方法中使用。
  • 问题2:用强制封装private设定变量,后面无法调用。
  • 问题2解决方案:public是公共封装封装,private是私有封装,而可见性保护protected才是不死有情况下恰当封装。
  • 问题3:使用枚举类时按照书上的操作cone3.NAME进行调用,但是发现无法输出。
  • 问题3解决方法:在声明后,在计算机内部每一个枚举类型都保存为一个整数值,所以我一卡使用double类型声明,且使用小数会损失数据。

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

  • 问题1:在编译时发现找不到类的错误。
  • 问题1解决方案:我在编写时将setpogyrightdate自己设定的方法当作类进行运算,所以找不到类
  • 问题2:在编写接口时定义接口后,再用一个链接接口的类的子类去调用发现出现无法调用的情况。
  • 问题2解决方案:接口引用可以指向实现这个接口的任意类的任何对象,继承可以使用接口。但是我没有声明使用的是接口。
  • 问题3:在编写类时,使用toString输出return变量时发现不符合自减运算的结果。
  • 问题3解决方法:直接使用自动生成的toString代码,应该用条件运算符卡一下。

代码托管

https://gitee.com/besti1823/20182329lyz.git

(statistics.sh脚本的运行结果截图)

上周考试错题总结

-The behavior of an object is defined by the object‘s

A
.
instance data

B
.
constructor

C
.
visibility modifiers

D
.
methods

E
.
all of the above

解析:这些方法规定了对象在传递消息时的反应。每个消息都被实现为一个方法,该方法是传递消息时执行的代码。

  • To define a class that will represent a car, which of the following definitions is most appropriate?

A
.
private class car

B
.
public class car

C
.
public class Car

D
.
public class CAR

E
.
private class Car

解析:类应该定义为公共的,以便其他类可以访问它们。根据Java命名惯例,.class名除了每个新单词的开头外,应该以大写字母和小写字母开头,因此Car比Car或Car更合适。

  • A variable whose scope is restricted to the method where it was declared is known as a(n)

A
.
parameter

B
.
global variable

C
.
local variable

D
.
public instance data

E
.
private instance data

解析:局部变量是那些声明它们的方法的“局部”变量,也就是说,它们只能在方法内部访问。全局变量是那些可以从任何地方访问的变量,而参数是传递给方法的变量。可以将实例数据视为整个对象的全局变量。

  • A class‘ constructor usually defines

A
.
how an object is initialized

B
.
how an object is interfaced

C
.
the number of instance data in the class

D
.
the number of methods in the class

E
.
if the instance data are accessible outside of the object directly

解析:构造函数应该用于“构造”对象,即设置实例数据的初始值。

  • Instance data for a Java class

A
.
are limited to primitive types (e.g., int, float, char)

B
.
are limited to Strings

C
.
are limited to objects(e.g., Strings, classes defined by other programmers)

D
.
may be primitive types or objects, but objects must be defined to be private

E
.
may be primitive types or objects

解析:实例数据是组成类的实体,可以是任何可用的类型(无论是基元类型还是对象类型),也可以是公共类型或私有类型。通过使用对象作为实例数据,它允许在其他类的基础上构建类。如果一个类拥有其他类的实例数据,则这种关系称为has-a关系。

  • An example of passing message to a String where the message has a String parameter would occur in which of the following messages?

A
.
length

B
.
substring

C
.
equals

D
.
toUpperCase

E
.
none of the above, it is not possible to pass a String as a parameter in a message to a String

解析:长度和toUpperCase消息没有参数,子字符串有两个int参数。对于equals,字符串必须作为参数ed,以便接收消息的字符串可以进行比较。

  • Consider a method defined with the header: public void doublefoo(double x). Which of the following method calls is legal?

A
.
doublefoo(0);

B
.
doublefoo(0.555);

C
.
doublefoo(0.1 + 0.2);

D
.
doublefoo(0.1, 0.2);

E
.
all of the above are legal except for D

解析:对于A,值0 (int)被扩大为double。在C的情况下,添加操作产生0.3,然后调用doublefoo。D中的参数列表是非法的,因为它包含两个双参数,而不是1。

  • All Java classes must contain a main method which is the first method executed when the Java class is called upon.

A
.
true

B
.
false

解析:只有驱动程序需要一个主方法。驱动程序是在任何Java程序(applet除外)中首先执行的程序,但是它可以根据需要调用其他类,而这些其他类不需要主方法。

  • Java methods can return more than one item if they are modified with the reserved word continue, as in public continue int foo( ) { ... }

A
.
true

B
.
false

解析:语法错误的原因是它以“”符号结尾。

  • A constructor may contain a return statement so long as no value (or expression) is returned.

A
.
true

B
.
false

解析:构造函数可能包含非值返回的返回语句。这样做是不鼓励的,但却是合法的。

  • Accessors and mutators provide mechanisms for controlled access to a well-encapsulated class.

A
.
true

B
.
false

解析:访问器提供对变量的读访问,否则这些变量是不可访问的。mutator提供对以其他方式不可访问的变量的写访问。

结对及互评

评分标准

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

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)
    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分
  4. 代码调试中的问题和解决过程, 一个问题加1分
  5. 本周有效代码超过300分行的(加2分)
    • 一周提交次数少于20次的不加分
  6. 其他加分:
    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:
    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评模板:

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

    • 本博客再IDEA的学习运用上学到了许多,在经过IDEA的多种下载安装setting,git程序,都基本掌握了。
    • 但是博客在课本自学方面存在一点问题,并没有将所有知识点列出,只是课本编程实列的学习问题的解决。
    • 本博客在学习类的编写上下了很大功夫,同时掌握了类的层次结构
  • 代码中值得学习的或问题:
    • 本博客在提出代码编写错吴时,虽然解析比较完整,没有展示出比较全面的图片。
    • 本博客存在设置类(标识符)时的错误,希望改正。
  • 基于评分标准,我给本博客打分:10分。得分情况如下:
  • 正确排版要素齐全(+1)
  • 使用makedown格式(+1)
  • 教材问题(+3)
  • 代码调试问题(+3)
  • 错题深入(+1)
  • 点评认真(+1)
  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况

    • 20182324
    • 结对照片
    • 结对学习内容
      • 学会使用单元测试进行测试代码。
      • 学会TDD代码测试。
      • 学会是使用编写类,用public、void等编写,调用类的方法进行运算。
      • 学习类与类的关系,继承,聚合,关联等等,来厘清关系。
      • 学会方法调用和包装方法的使用。
  • 上周博客互评情况
    • 学号1
    • 学号2
    • 学号3
    • 学号4
    • ...

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

首先我在学习测试代码中,感觉就像是主函数子函数之间的传递参数,其实适逢简单。之后的TDD测试也是十分简单,只要注意函数之间的返回值就行。最为重要的是Java的精髓是类的编写调用,各个类的关系和调用,让针对对象的运算更加方便。接口也让Java简单的上下级的类关系多了更多如蛛网般的联系,更加灵活,多态的指向不同类型对象也缩减了不少代码量。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 6000行 30篇 400小时
第一周 107/107 2/2 15/15
第二周 454/526 2/4 32/47
第二周 988/1514 2/6 31/78

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

  • 计划学习时间:30小时
  • 实际学习时间:31小时
  • 改进情况:在周六周天假期少一点玩,多打几行代码。

参考资料

原文地址:https://www.cnblogs.com/lyz182329/p/11614215.html

时间: 2024-10-09 00:28:49

《数据结构与面向对象程序设计》第4周学习总结的相关文章

《数据结构与面向对象程序设计》第四周学习总结

20182304 2019-2020-1 <数据结构与面向对象程序设计>第四周学习总结 教材学习内容总结 1.本章我们学习了使用并编写我们自己的类:类中有与类同名的构造方法,也可以有set,get,toSring与自己定义的方法.实例化一个对象,可通过该对象使用类里的所有方法.实例数据是每次创造一个实例后自动生成新的内存空间的变量 2.uml类图 :每个类可能包含三部分内容:类名.属性.操作(方法).UML类图有属于自己的语法,变量的类型名在变量名的后面,它们之间用冒号作为分隔符,方法的+和-

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

20182306 2019-2020-1 <数据结构与面向对象程序设计>第五学习总结 教材学习内容总结 尽量简单的总结一下本周学习内容 尽量不要抄书,浪费时间 看懂就过,看不懂,学习有心得的记一下 教材学习中的问题和解决过程 问题1:XXXXXX 问题1解决方案:XXXXXX 问题2:XXXXXX 问题2解决方案:XXXXXX ... 代码调试中的问题和解决过程 问题1:XXXXXX 问题1解决方案:XXXXXX 问题2:XXXXXX 问题2解决方案:XXXXXX ... 代码托管 (stat

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

教材学习内容总结 1.编写类与方法(构造方法的结构和用途) 2.实际参数与形式参数.public与private.return与void的区别与含义. 3.UML类图的含义与形式 4.静态类(Math类)静态变量.静态方法 5.类间关系(依赖关系.聚合关系.继承关系) 6.接口的使用,能够在某个类中实现接口的方法(Comparable.Iterator) 7.软件活动开发.方法设计.方法重载.测试(黑盒测试.白盒测试) 教材学习中的问题和解决过程 问题1:toString与return返回的值的

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

教材学习内容总结 1.继承的基本语法与用法. 2.利用UML类图表示继承关系. 3.在具体编写类的时候,先是数据声明再是方法声明. 4.toString方法用println或print或字符串连接会自动调用. 5.每创建一个对象.都会为类中声明的变量建立新的内存空间. 6.UML图一些基础使用方法. 7.对象应该是自管理的,既对象的实例数据应该仅由该对象来修改,这就构成了封装. 代码调试中的问题和解决过程 问题1:测试代码出现错误 问题1解决方案:junit的方法名必须是textxxx或xxxt

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

20182332 2019-2020-1 <数据结构与面向对象程序设计>第1周学习总结1 教材学习内容总结 1.配置linux 虚拟机.java环境. 2.理解面向对象程序设计,包括属性.方法.封装等概念. Java基本结构,环境变量配置,集成开发环境. JAVA文件编译过程: 1.源文件由编译器编译成字节码(ByteCode) 2.字节码由java虚拟机解释运行. git命令: git init 创建本地版本库: git clone 与远程仓库建立联系: git add .将当前目录下文件添

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

学号 2019-2020-2314 <数据结构与面向对象程序设计>第1周学习总结 教材学习内容总结 1.计算机系统是由软硬件组成的 2.java程序的结构组成(注释.标识符和保留字等) 注:java是大小写敏感的,大写和小写是有区别的 3.程序开发所包含的内容(程序设计语言的等级.编辑器.编译程序.解释程序.开发环境和语法语义) 4.在开发软件的过程中遇到问题时的解决步骤:理解问题.设计方案.考虑方案的选择并优化方案.实现方案.测试方案并修改存在的任何问题. 教材学习中的问题和解决过程 问题1

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

20182329 2019-2020-1 <数据结构与面向对象程序设计>第1周学习总结 教材学习内容总结 git代码托管代码 Java的基本编程 jdb代码调试 教材学习中的问题和解决过程 问题1:在课本自学过程中,有一题是Java中有什么是不可能被识别的,我做错了一道(12345)可以被识别. 问题1解决方案:后来询问学长数字不与命令相匹配时不是有效的标识符,且标识符不能以数字为开头. 问题2:在自己对于课本代码编译时,发现自己main处显示错误 问题2解决方案:一开始我以为是我main的方

《数据结构与面向对象程序设计》第01周学习总结

目录 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>第01周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 结对及互评 点评模板: 点评过的同学博客和代码 其他(感悟.思考等,可选) 学习进度条 参考资料 目录 学号20182323 2019-2020-1 <数据结构与面向对象程序设计>第01周学习总结 教材学习内容总结 学习了java的历史与发展. 学习了一些软件工具,开发环境等. 掌握

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

20182327 2019-2020-1 <数据结构与面向对象程序设计>第二第三周学习总结 教材学习内容总结 在第二章的学习中,首先学习了Java编程的基本格式,然后学会了定义.赋值.使用各种数据类型的变量,可以独立打印数据到屏幕上,最后掌握了如何使用Scanner类的一般使用方法. 从第三章中,我学到了由String.Math.Random等类创建对象(即实例化对象),如果要使用Java.long包以外的类,要使用import声明,最后枚举类型,包装类没有看懂. 教材学习中的问题和解决过程

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

20182333 2019-2020-1 <数据结构与面向对象程序设计>第2.3周学习总结 教材学习内容总结 第二章 1.字符串的概念以及拼接. 2.println方法和print方法的用法和区别 3.转义序列的概念和用法. 4.变量常量和赋值语句的相关内容. 5.8个基本数据类型. 6.表达式的概念,算数.自增自减.赋值三种运算符以及运算符优先级. 7.数据类型转换的安全性以及三种技术. 8.Scanner类的应用. 第三章 1.创建对象,对象引用变量的声明和与初始化,别名. 2.Strin