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

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

教材学习内容总结

本周内容主要为书的4.1-4.5以及7.1-9的内容:

  • 第四章

    1.编写类与方法(构造方法的结构和用途)
    
    2.实际参数与形式参数、public与private、return与void的区别与含义
    
    3.UML类图的含义与形式
  • 第七章

    1.静态类(Math类)静态变量、静态方法
    
    2.类间关系(依赖关系、聚合关系、继承关系)
    
    3.接口的使用,可以在某个类中实现接口的方法(Comparable、Iterator)
    
    4.软件活动开发、方法设计、方法重载、测试(黑盒测试、白盒测试)
    
    5.GUI设计

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

  • 问题1:构造方法
  • 问题1解决方案:经过百度和老师的讲解,有了必定的认识,构造方法主要用来在建立对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一块儿使用在建立对象的语句中。特别的一个类能够有多个构造函数 ,可根据其参数个数的不一样或参数类型的不一样来区分它们 即构造函数的重载。构造方法的名字必须与定义它的类名彻底相同,没有返回类型,甚至连void也没有。php

  • 问题2: return与void的关系
  • 问题2解决方案:经过书上的理解以及本身的操练,每个方法中能够有多个return,但并非返回的屡次,而是在不一样状况下进行的返回。同时,在构造方法中没有返回值。html

    不返回值的方法一般不包含return语句,当 该方法执行结束时将自动返回调用方法。java

  • 问题3:形式参数与实际参数
  • 问题3的解决办法:二者是在调用的时候进行结合的,一般实参会将取值传递给形参,形参去以后进行函数过程运算,而后可能将某些值通过参数或函数符号返回给调用者。经过理解,参数就如同之前的sinx中x,而实际参数是形式参数的实例化,实际参数所表明的值给个形式参数,进行方法运算。git

    方法声明首部中的参数名,被称为形式参数。
    在一次方法的调用中实际传递给方法的参数,被称为实际参数。程序员

  • 问题4: 接口问题
  • 问题4的解决办法:练习接口的问题,并把接口的练习于PP7.4,代码的问题在代码问题部分说明,对于接口,是一组常量和抽象方法的集合,接口中没有实现的方法,参数列表的方法声明头后面仅跟着分号。接口不能被实例化,接口的应用,大大提升了方法步骤的灵活性,经过implements实现某个接口。web

  • 问题5: 静态类成员
  • 问题5的解决方法:静态类仅包含静态成员,不能被实例化,静态变量能够由全部的类实例共享,静态方法能够经过类名称调用。静态类是密封的,所以不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。安全

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

  • 问题1:含布尔型的方法的运用
  • 问题1解决方案:布尔型的运用本身练得不多,因此对Car类的编写一直止步于布尔型的应用,纠结半天,就是不会弄,巧妇难为无米之炊,看了好几遍的数就是不会弄,经过借鉴别人的代码,理解了并与if语句联合使用解决问题了。

  • 问题2:set与get二者的运用
  • 问题2解决方案:set与get的理解,刚开始只保持在书上内容,一个是修改,一个是访问,经过实验发现,这部份内容与返回值的问题有联系,对于set只是改变值,无返回值。并且,get是访问,能够调用其数值或是字符串什么的,set没有此做用。
    数据结构

  • 问题3:构造方法中的实际参数问题
  • 问题3解决方案:实际参数是字符串的时候,要加“”,我没加“”致使了问题提醒,很神奇觉得又出现bug了,结果对比了例题才发现本身没加“”形成的,犯了这么低级的错误,尚未即便发现,困扰了半天才解决,仍是要归结为本身的马虎形成的。
    app

  • 问题4:PP4.6的问题
  • 问题4解决方案:题目中要求判断盒子是否装满的问题,我一直没有找到很简单的方案,仅仅经过增长一个货物的实际高度,与盒子高度作比较,才能判断。并且这样就有可能货物比盒子要高的可能性,这种也要算装满么?并且感受本身的布尔型的用法好像与题意有些不符,结果是作出来了,可是有很大的修改地方,值得我不断的进行修改。
    ide

  • 问题5:接口的问题与PP7.4
  • 问题5的解决方案:在RationalNumber类中实现Comparable接口,我认为得像PP7.8同样去弄,编写一个接口类,结果就开始纠结比较以后输出的问题,我是在接口类中简单定义一些,仍是总体移到RationalNumber类中进行编译,还有我想到这个输出的应该是什么,是要告诉用户这是两个有理数是近似相等,仍是不想等的,感受本身是一个问题男孩因此带着这一堆问题跑去问学长,经过两个多小时的交流,我发现这个类不用编写,Compararle类的comparaTo是在类库中就有的,并且就和以前书上介绍String类的comparaTo同样,进行同类型的比较,并且输出的是正整数、负整数和零,根据其输出的数值和其正负来判断出来,不用输出一串什么字符串之类的问题。并且,看到学长帮助的修改下,我发现学长在前面接口出加了 ,问学长学长说到之后会学,故意卖个关子,故弄玄虚,结果我没查到这是什么......(果真大佬就是大佬,强大到轻轻松松的解决了我全部的问题,在此表示感谢!)

代码托管

上周考试错题总结

  • 错题1 What happens if you attempt to use a variable before it has been initialized?(若是在初始化以前尝试使用变量,会发生什么状况?) A syntax error may be generated by the compiler (语法错误能够由编译器生成。)
    A runtime error may occur during execution(执行期间可能出现运行时错误。)
  • 错误解析: 不少时候,编译器可以检测到未初始化变量的尝试使用,在这种状况下会产生语法错误。若是在编译器中使用脱逃检测,那么在使用时就会出现运行时错误。Java是一种很是“安全”的语言,所以若是在计算中使用未初始化的变量,它不容许使用“垃圾”或“0”。本题所说的内容本身也没有去试过,只能凭本身学过的内容进行判断。并且,我认为只有语法错误,不会产生运行错误的。
  • 错题2 What is the function of the dot operator?(点算符的函数是什么?)
    It allows one to access the data within an object when given a reference to the object(它容许在给定对象的引用时访问对象中的数据。
    )It allows one to invoke a method within an object when given a reference to the object(当给定对象的引用时,它容许在对象中调用方法。)
  • 错误解析: 点运算符在对象引用以后直接追加,而后是须要访问的数据或方法。在数据的状况下,访问多是用于读取或写入。在方法的状况下,访问是容许一个调用方法。浮点数内的点是一个小数点,而不是点算符。因此,一个点的含义无非就是引用数据或是调用方法。本题没有全面的考虑点运算符的做用,并且因为E选项的迷惑,不太敢选择引起的错误。
  • 错题3 In 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(".")?(在清单3.1中所示的string突变程序中,若是短语被初始化为“Einstein”,那么若是突变#1:mutation1 = phrase.concat(“。”)mutation3会发生什么突变呢?)XINSTXIN.
  • 错误解析: 本题最不该该错,看到是和书上的例题有关,加上用有道词典的翻译,结果有道就翻译错了,译文中根本没有mutation3的变化,我也是醉了。
  • 错题4 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");(考虑如下两行代码。关于s1和s2,你能说些什么?字符串s1 = "test" + "123";字符串s2 = new String(“test123”);)s1 and s2 are both references to different String objects(s1和s2都是对不一样字符串对象的引用。)
  • 错误解析: 没有看到中间的空格,误觉得二者是同样的,因此选错。下次定要仔仔细细的看题目。
  • 错题5 An "alias" is when(一个是当“别名”
    two different reference variables refer to the same physical object(两个不一样的引用变量引用同一个物理对象。)
  • 错题解析: 当对同一物理对象有两个或多个引用时,就会出现一个“别名”,以便经过引用,能够读/写/修改对象。只局限于数字的问题,忽略了其余物理对象,例如字符串了什么的,均可以。
  • 错题6 The advantages of the DecimalFormat class compared with the NumberFormat class include(与NumberFormat类相比,DecimalFormat类的优势包括。)precise control over the number of digits to be displayed(精确控制显示的数字的数目。) control over the presence of a leading zero
    (控制一个前导零的存在。)
  • 错题解析: 虽然DecimalFormat比NumberFormat提供了更多的控制,可是经过一个或多个数学方法将截断保留在程序员手中。%符号将出如今显示的末尾而不是开始。前导零的应用,是本身没有尝试的结果,根据书中的例子,本身只是尝试在尾部放零,忽略了前导的问题。经过老师的考后的讲解,对此有了更深的认识与来理解。
  • 错题7 These two ways of setting up a String yield identical results:a) String string = new String("123.45");b) String string = "" + 123.45;(两种设置字符串的方式产生了相同的结果)
    true
  • 错题解析: Java理解+运算符,当使用数字组合字符串时,应该将数字转换为数字字符串,而后再进行链接。仍是本身对+的理解不够到位致使的错误,会好好看书的。

  • 本周的答题考的分数较高,但在答题过程当中并无感受每道题都会作,甚至还存在有些题是“凭感受”选上的,感受本身愧对这个成绩,不少题不是不肯定,就是不知道,其实不少题无非都是书上的细节部分,或是书上内容的延伸,加之本身这个坏毛病——马虎,致使的对题理解能够,却看错了题白瞎了分,蓝瘦香菇,并且感受学习难度不断加深,日后更要把时间分配好,好好学JAVA。

感悟

一周半的学习,第四章和第七章,感受有好多代码要敲,有好多知识要学,感受本身一下回到了高三的感受,知识一点点的加深,至于书上的内容是远远不够平常的应用的,感受本身要是离开书敲个类,估计一半都不会,并且有些知识点特别专业化,难理解,不明白。压力山大。听过学长学姐说,经常敲代码到很晚很晚,也就能够理解这门科目,要下很大很大的功夫,才能有所成就。慢慢坚持吧,看到本身的代码量不断的突破,仍是有那么一点点的欣慰的。对于这两章的内容,还有不少没有掌握,还有练习没有敲完,会在日后的日子漫漫的补上的。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 136/136 1/2 15/20
第二周 570/706 1/4 20/38
第三周 613/1319 1/7 23/60
第四周 1249/2568 1/9 30/90

参考资料

相关文章
相关标签/搜索