20172330 2017-2018-1 《Java程序设计》第六周学习总结

时间:2023-02-21 22:30:29

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

教材学习内容总结

这一章主要是对数组的学习:

  • 数组是一种简单而功能强大的编程语言结构,用于分组和组织数据。在java中,数组索引总是以0开始。
  • java有两种声明数组方式,:
    int【】 grades
    int grades【】
  • 一个数组可以含有多个对象,每个对象又由一组变量和使用这些变量的方法组成,,而对象中的变量本身也可能又是数组。
  • 命令行实参存储在String对象的数组中,并将传递给main方法。

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

  • 问题1:在看课本8.3时候,,对于对象数组的理解。
  • 问题1解决方案:实例化对象数组只是为保存对象引用和预留空间,对每个数组元素所代表的对象必须分别实例化,所以一个对象数组实际上就是一个对象引用数组。

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

  • 问题1:在做pp81没有在while循环中设置停止条件导致无限循环下去。
  • 问题1解决方案:在尝试使用了break后成功运行。这也是第一次开始使用break,以前都是使用if和else而没有尝试过这一种。
    20172330 2017-2018-1 《Java程序设计》第六周学习总结

  • 问题2:在做pp8.1时候,当时好像是多定义了一个数组输出,导致其本身的数字与输入的数字相加后才输出个数。
  • 问题2解决方案:我将我定义的第一个数组显示结果删掉,最后显示了正确结果。
    20172330 2017-2018-1 《Java程序设计》第六周学习总结

  • 问题3:在用Math.sqrt(double num)方法时候,IDEA报错说num应该为int类型,而书上也写着无论是输出的sqrt还是输入的num都应该为double型
  • 问题3解决方案: 定义的时候刚开始在找数组,后面发现int型的运用不正确,全部改为double型后成功解决了问题。

代码托管

20172330 2017-2018-1 《Java程序设计》第六周学习总结

上周考试错题总结

将第五周和第六周错题弄反了,本次为第五周错题

  • 问题1:Which of the following reserved words in Java is used to create an instance of a class?
    A.class
    B.public
    C.public or private, either could be used
    D.import
    E.new
    保留字“new”用于实例化一个对象,声明new后面跟着的是类名,这就是类的构造方法。如
    Car x = new Car( );将会实例化一个car类,并赋予一个变量X。

  • 问题2: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
    实例数据是组成类的实体,它可以是任何可用的类型,无论是原始的还是对象的,public型还是private型。

  • 问题3:During program development, software requirements specify
    A.how the program will accomplish the task
    B.what the task is that the program must perform
    C.how to divide the task into subtasks
    D.how to test the program when it is done
    E.all of the above
    软件需求指定了程序必须完成的功能,指明了程序应当执行的任务,而不是描述如何执行所规定的任务。通常,任务需求用一个称为功能说明的文档来描述。

  • 问题4:Java does not support multiple inheritance, but some of the abilities of multiple inheritance are available by
    A.importing classes
    B.implementing interfaces
    C.overriding parent class methods
    D.creating aliases
    E.using public rather than protected or private modifiers
    由于类可以实现任意数量的接口,所以该类本质上是使用接口类,就好像这些接口是在该类中定义的那样。因此,该类继承了接口的方法和常量。此外,该类还可以扩展另一类,从而直接或间接地从多个类继承。这与多重继承并不完全相同,但它与Java的概念非常接近。

  • 问题5:The goal of testing is to
    A.ensure that the software has no errors
    B.find syntax errors
    C.find logical and run-time errors
    D.evaluate how well the software meets the original requirements
    E.give out-of-work programmers something to do
    测试是必需的,因为所有的软件都有错误。复杂的系统在发布之前尤其需要测试。所寻找的错误类型是逻辑错误和运行时错误。所有的语法错误都将在实施过程中被识别和修复。

  • 问题6:Static methods cannot :
    A . reference instance data
    B . reference non-static instance data
    C . reference other objects
    D . invoke other static methods
    E . invoke non-static methods
    静态方法是类本身的一部分, 而不是实例化对象的方法, 因此静态方法在类的所有实例化对象之间共享。由于静态方法是共享的, 因此它无法访问非静态实例数据, 因为所有非静态实例数据都特定于实例化对象。

  • 问题7:What happens if you declare a class constructor to have a void return type?
    A . You'll likely receive a syntax error
    B . The program will compile with a warning, but you'll get a runtime error
    C . There's nothing wrong with declaring a constructor to be void
    D . The class' default constructor will be used instead of the one you're declaring
    E . None of the above
    加void类型并没有语法错误,只是不是构造函数而是一个普通的函数了,但是每一个函数里都有构造函数,如果自己加了void类型后也只会是出现一个空的构造函数而非产生语法错误。

  • 问题8:Formal parameters are those that appear in the method call and actual parameters are those that appear in the method header.
    A . true
    B . false
    问题有两个定义颠倒了。形式参数是出现在方法头中的形参, 实际参数是方法调用中的参数 (传递给方法)。

  • 问题9:Accessors and mutators provide mechanisms for controlled access to a well-encapsulated class.(存取器和突变器提供了对一个良好封装的类进行受控访问的机制。)
    A true
    B false
    存取器提供对那些否则无法访问的变量的读访问。突变器提供对其他难以访问的变量的写访问权

  • 问题10:Interface classes cannot be extended but classes that implement interfaces can be extended.
    A true
    B false
    接口类不能被扩展,但是实现接口的类可以被扩展。a.真正的b.假 解释:任何类都可以被扩展,无论它是一个接口,还是实现一个接口,或者两者都没有。唯一的例外是,如果该类被显式地用“final”这个词进行修饰,在这种情况下,它不能被扩展。

    结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • 图片和文字相结合,方便理解。
  • 代码中值得学习的或问题:
    • 严域俊同学学习十分积极,代码行数体现了其应该花了很大功夫去研究。
    • commit十分详细,有条理性。

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172333
    • 结对学习内容
      • 学习第八章pp项目。
      • 学习数组的具体内容

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

本周在课后项目编程时遇到了很多困难,课下还是要将课本熟读。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 180/180 2/2 20/25
第二周 312/414 2/4 20/45
第三周 557/971 2/6 25/70
第四周 1217/2242 2/8 44/114
第五周 734/2976 2/10 24/138
第六周 523/3509 2/12 20/158

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:

commit的提交有了改进

参考资料