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

时间:2023-02-21 22:16:33

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

教材学习内容总结

这一周的内容还是比较多的,而且很复杂,包含第四和第七章。

  • 第四章向我们介绍了类结构的定义与概念,同时举出了好多个例题向我们展示自定义类的方法与应用,对于方法定义的结构与用途进行了讨论:包括return语句,参数,局部数据等方面。
  • 第七章的主要内容则是面向对象设计。通过书本的介绍了,我们探讨了面向对象软件设计的主要问题,了解了确定程序所需要的类和对象的技术,对类之间的关系进行了探讨,详细的学习了static修饰符作用在方法和数据上的效果和枚举符类,最后对建立形式化对象接口的方法进行了学习。

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

  • 问题1:编写类是由哪些东西构成的,各个部分起到什么作用?
  • 问题1解决方案:我也没有太理解,大概觉得编写类中大致起关键作用的包括两个内容:构造函数和方法。它们可以使这个类变得有效,可以在程序中利用。

  • 问题2:静态变量和实例变量的区别
  • 问题2解决方案:在查阅资料后发现
    实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。就跟静态方法可以直接通过类名调用类似。
    静态变量是所有对象共有的,某一个对象将它的值改变了,其他对象再去获取它的值,得到的是改变后的值;
    实例变量则是每一个对象私有的,某一个对象将它的值改变了,不影响其他对象取值的结果,其他对象仍会得到实例变量一开始就被赋予的值。

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

  • 问题1:在编写课堂作业暨pp47的时候,我编写的book类其他都没有什么问题,运行也是成功的,但是在Java编译的时候显示的就是null,我换了好几种方式不管是toString还是set。
    20172330 2017-2018-1 《Java程序设计》第四周学习总结

  • 问题1解决方案:然后在学长的指导下发现我编写的类和定义的方法名字是一样的导致错误最终输出null,于是改为This.顺便看到了课本上7.4.4对于this的引用,this引用是可以允许对象引用自己的,这也就解决了我的问题,而且this引用还可以引用于当前正在运行的对象。
    20172330 2017-2018-1 《Java程序设计》第四周学习总结

  • 问题2:当你把你编好的类javac到你的bin文件之后你再去测试你的text文件会显示找不到类,而且在javac -d 的时候也会出现问题
  • 问题2解决方案:然后只有把他放在一个文件夹中你的类才会起到效果。

代码托管

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

上周考试错题总结

  • 1In Java a variable may contain
    A a value or a reference
    B a package
    C a method
    D a class
    E any of the above
    在JAVA中变量只能包含一个值或一个引用。所以应该选a的。

  • If two variables contain aliases of the same object then
    A the object may be modified using either alias
    B the object cannot be modified unless there's but a single reference to it
    C a third alias is created if/when the object is modified
    D the object will become an "orphan" if both variables are set to null
    E answers A and D are correct
    对象可以使用别名进行修改,如果两个变量都设置为null,那么对象将变成一个“孤儿”。

  • Which properties are true of String objects?
    A Their lengths never change
    B The shortest string has zero length
    C Individual characters within a String may be changed using the replace method
    D The index of the first character in a string is one
    E Only A and B are true
    他们的长度永远不会改变,最短的字符串长度为零。字符串是不可变的。这意味着, 一旦创建了字符串对象, 就不能更改它。因此, 字符串的长度在创建后不会更改。最短长度字符串为 "", 引号之间没有字符, 因此长度为零。

  • What happens if you attempt to use a variable before it has been initialized?
    A A syntax error may be generated by the compiler
    B A runtime error may occur during execution
    C A "garbage" or "uninitialized" value will be used in the computation
    D A value of zero is used if a variable has not been initialized
    E Answers A and B are correct
    编译器多次能够检测到未初始化变量的尝试使用, 在这种情况下会产生语法错误。如果编译器使用转义检测, 则在使用时会发生运行时错误。

  • What is the function of the dot operator?
    A It serves to separate the integer portion from the fractional portion of a floating point number
    B It allows one to access the data within an object when given a reference to the object
    C It allows one to invoke a method within an object when given a reference to the object
    D It is used to terminate commands (much as a period terminates a sentence in English)
    E Both B and C are correct
    点算符的功能为:它允许在给定对象的引用时访问对象中的数据,当给定对象的引用时,它允许在对象中调用方法。所以这道题应该选e的。

  • Unlike the String class where you must pass a message to an object (instance) of the class, as in x.length( ), in order to use the Math class, you pass messages directly to the class name, as in Math.abs( ) or Math.sqrt( ).
    A .true
    B .false
    数学类使用被称为静态方法 (或类方法) 的方法, 通过将消息直接传递到类名本身而不是类的对象来调用。

  • Which of the following will yield a pseudorandom number in the range [ -5, +5 ) given the following:
    Random gen = new Random( );
    A gen.nextFloat( ) * 5
    B gen.nextFloat( ) * 10 - 5
    C gen.nextFloat( ) * 5 - 10
    D gen.nextInt( ) * 10 - 5
    E gen.nextInt(10) - 5
    这道题是Float,我没有注意到。

  • Consider the following two lines of code. What can you say about s1 and s2?
    String s1 = "testing" + "123";
    String s2 = new String("testing 123");
    A s1 and s2 are both references to the same String object
    B the line declaring s2 is legal Java; the line declaring s1 will produce a syntax error
    C s1 and s2 are both references to different String objects
    D s1 and s2 will compare "equal"
    E none of the above
    s1和s2是对不同对象的引用,无论s1和s2对应的变量是否相等。所以这道题应该是选c的。

  • The String class' compareTo method
    A compares two string in a case-independent manner
    B yields true or false
    C yields 0 if the two strings are identical
    D returns 1 if the first string comes lexically before the second string
    E none of the above
    string类的compareTo方法中如果两个字符串是相同的,则得到0。而不是对与错。

  • The advantages of the DecimalFormat class compared with the NumberFormat class include
    A precise control over the number of digits to be displayed
    B control over the presence of a leading zero
    C the ability to truncate values rather than to round them
    D the ability to display a % automatically at the beginning of the display
    E only A and B
    伪随机数生成器相对于Math.random的优势在于:可以创建几个随机数生成器,可以在一个范围内生成随机的int,floats和ints。所以应该包括A与B。

  • If you need to import not only the top-level of a package, but all its secondary levels as well, you should write: import package..;
    A true
    B false
    如果您不仅需要导入包的顶层, 而且还要输入所有的辅助级别, 则应编写: 导入包. ;(false);导入包.

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

这周的任务量挺大,而且很多东西都需要自己去编写类并且进行调试,感觉到还有很多不足存在觉得还是要把书上的例题认认真真的敲一遍才会懂得,然后再去做课后习题。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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
  • 计划学习时间:44小时

  • 实际学习时间:25小时

参考资料