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

时间:2023-02-21 14:38:53

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

教材学习内容总结

  • 构造方法的理解
  • 简单的类的编写
  • 参数,对象,类的关系
  • 局部变量
  • 接口的理解

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

  • 问题1:构造方法的问题。
  • 问题1理解:构造方法是一个类的主体,主要规定了基本参数,从而使得新的对象在实例化的过程中输入相应的参数并且依次读取相应参数,而构造方法中的参数是主要数据,所以在编写时应当围绕其展开。而至于类中其他的方法,则是围绕设计需求所展开。如果需要调用其他方法的参数,可以在类首中申明或在方法中使用return语句返回该值。
  • 问题2:形式参数
  • 问题2理解:初学时,类中的方法有的是空括号,有的则是含有参数名,当时令人十分困惑,例如getX()方法中就没有参数,只是将其返回。但也有别的方法在括号中规定了参数。课本上说到

    “形参时标识符,充当方法中的变量,一个方法的形参初始值由调用该方法时的实参赋予。调用方法时,每个实参的值被复制后保存到相应的形参中。”

  • 这就是说对于一个方法 ,在作为一个方法时必然没有具体的数据,否则也不会被称为方法。但做为一个方法的必要元素,必须要有参数,即使括号为空。
  • 问题3: 例题7.4中的RationalNumber方法

    public RatonalNumber add(RationalNumber op2)
  • 问题3理解:一开始看到这里时,充满了迷惑,即前后并未对该参数进行申明,那么它是怎么被调用的呢?刚开始,我以为这是一种“方法”可以被直接使用,但是在JDK中并未查到,之后学习了接口知识后,这是不是一种接口呢?明显不是,在类首并未有任何接口的信息。(不过,确实存在add接口)那么,这个方法到底时怎么回事呢?结合注释与测试程序,程序中有这样一个片段

    r4 = r1.add(r2);

    看来add可以被直接调用,并没有想的那么复杂,只是一个编写的一个普通方法而已;而至于为什么没有申明RationNumber op2,首先RationalNumber在构造函数就有,op是面向对象的简称,也就是说op2是第二个对象,也就是测试程序中的r2。所以可以直接被直接带入方法之中。

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

  • 问题1:PP4.5的编写 其中主要有一个问题就是用布尔值来表示其是否为古董车
  • 问题1解决方案:用布尔值来返回,第五章有相关知识,可以使用if语句来实现,但当时并未学习相关知识,那么有没有别的方法呢?在于助教以及同学交流后找到了方法。
    20172326《程序设计与数据结构》第四周学习总结
    20172326《程序设计与数据结构》第四周学习总结
    可以发现,布尔值是由自动定义的,如果大于给定数字,自动给出true或false。
  • 问题2:comparable接口的实现
  • 问题2解决方案:本来思路为,利用格式化将double型转化为string,接着再次转化为double型。但事实证明,这完全是扯犊子,因为本题核心还是在于实现接口,回顾书本,再结合网上。这样即可解决
    20172326《程序设计与数据结构》第四周学习总结

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

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

代码托管

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

上周考试错题总结

  • 错题1如果两个变量包含同一对象的别名,那么
  • 别名提供了一种可以修改对象的方法,使得可以有两个内容相同的对象
  • 错题2String对象的哪些属性是真的?
  • 第一个索引为0
  • 错题3如果在初始化之前尝试使用变量会发生什么?
  • 没有这个变量,缺少相关的数据,程序无法运行,且会出现语法错误。
  • 错题4点运算符的功能是什么?
  • 允许在给定对象的引用时访问对象内的数据以及在给定对象的引用时调用对象中的方法。
  • 错题5In the StringMutation program shown in Listing 3.1, if phrase is initialized to "Einstein" what will Mutation #3 yield if Mutation #1: mutation1 = phrase.concat(".")?
  • 本题需要结合例题,根据具体来分析
  • 错题6Which of the following will yield a pseudorandom number in the range [ -5, +5 ) given the following:Random gen = new Random( );
  • nextInt()不能再外部进行加减以改变范围
  • 错题7An "alias" is when
  • 两个相同的参考变量引用同一变量
  • 错题8When comparing any primitive type of variable, == should always be used to test to see if two values are equal.
  • 整数型可以,但浮点型不能,但可以运用比较精度,同时浮点数本身是一种近似误差来表示,老师有在课堂上提到过。
  • 错题9Java.text's NumberFormat class includes methods that
  • 格式化百分比与格式化货币
  • 错题10The advantages of the DecimalFormat class compared with the NumberFormat class include
  • 可以确定格式化结果的小数点精度

    其他

  • 本周学习内容较多,而且涉及内容有类的编写与接口的实现,很多地方都很难想到,不过,确实需要多问,对于整个流程还不够熟悉,比如软件的需求等分析,所以接下来要继续敲更多的代码。还有就是commit message还是不太理解,需要继续学习。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 110/200 1/1 20/20
    第二周 425/500 2/ 2 18/38
    第三周 900/1000 4/4 22/60
    第四周 1500/1300 5/ 5 30/90

    本周的代码脚本似乎除了问题,现在正在调整,也已经问了老师。不过代码数是差不多的。

参考资料