20172319 2018.03.27-04.05 《Java程序设计》第4周学习总结

20172319 2018.03.27-04.05 《Java程序设计》第4周学习总结

教材学习内容总结

第四章 编写类

  1. 类与对象的回顾:对象是有状态的,状态由对象的属性值确定。属性由类中的声明的变量所定义。对象的操作可能改变该对象的状态。对象的操作由 类中声明的方法定义。
  2. 类的分析:类的成员(类的数据和方法);构造方法(给类赋初值);实例数据(变量声明的位置定义其作用域);UML类图(类及其对象关系可视化描述)。
  3. 封装:(1) 可见性修饰符:public(公有);private(私有,只能从内部访问);protected(只与继承性相关)。
              (2)访问器:getX,修改器:setX。
  4. 方法的分析:调用方法;return语句(获取返回值);实参,形参(方法声明首部中参数名);局部数据(方法内声明并使用)。
  5. 构造方法的回顾:与类名相同;无返回值;常用于初始化实例对象。

第七章 面向对象设计

  1. 软件开发活动:开发活动的四个基础过程:确定软件需求-软件设计-实现软件设计-软件测试。
  2. 明确类和对象:类的识别(给类命名、分清问题所在域);类的职责(声明方法去定义一个对象的行为)。
  3. 静态类成员:静态变量/类变量(static,,由所有类实例共享);静态方法(通过类便可调用);main方法(只能访问静态变量或局部变量)。
  4. 类间关系(最基本:依赖、聚合和继承):依赖(A必须通过访问B的实例来调用方法,类的对象可作为参数传递给本类的方法);
        聚合(对象集合成对象、包含关系);this引用(当前正在运行的对象;区分同名的构造方法参数和实例变量)。
  5. 接口(与对象交互的公共方法):一组常量和抽象方法的集合;不能被实例化;可以由多个类实现同一个接口,一个类可以实现多个接口;
        Comparable接口(compare to方法);Iterator接口(操作一次移动至下一个对象)。
  6. 枚举类型(特殊的类):其实例为枚举值,其值为对象;内含静态方法values(返回所有枚举值的列表(是一个迭代器,可用for循环语句处理其值))。
  7. 方法设计:方法分解(一个方法分解为多个方法);方法参数的传递方式(按值传递;按引用调用)。
  8. 方法重载:使用同一方法名调用多个方法。
  9. 测试:审查;缺陷测试(黑盒测试和白盒测试)。

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

  • 问题1:private不是私有化吗?后面干嘛又使用public公开了?

  • 解决:私有的是属性,对其私有化提高了其安全性,让使用者只能通过public提供的方法来访问数据。

  • 问题2:书上说die引用变量指向了各自Die对象的地址(什么东西?)

  • 解决:即是输出时跟在变量后面的奇形怪状的字符,正常情况下时隐藏的,但如果漏了什么语句(当时对die操作了一波,截的图不见了),它就会显示在    变量后面。

  • 问题3:构造方法...真的有用?

  • 解决:废话,没用讲干嘛 为属性赋值时,很容易忘记对其中的一项或多项进行赋值。构造方法可以简化对象初始化,为实例变量赋值。

  • 问题4:带参数的构造方法...这是又什么?

  • 解决:可以显示地为实例变量赋予初始值。在不同的条件下创建不同的对象,这些对象的实例变量具有不同的值。就是new后面()里的东西。

  • 问题5:实现类只能用那些在接口中的特定方法?

  • 解决:实现一个接口类必须定义那些包含在接口中的方法,但在接口中允许定义其他方法。

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

  • 问题1:为什么照着课本敲好的东西javac不了?

  • 解决:(1)先javac类,再javac其测试文件,之后再移动至bin文件夹。
         (2)javac -d bin/ src/*java

  • 问题2:编好了类,运行却有问题。

  • 解决:类中出现些许人物错误,机器检查不出来,只能人为去排查。
    输入图片说明
    输入图片说明
    输入图片说明

  • 问题3:练习pp4.5时,想在类中输出语句,却发现怎么改数据boolean都是false。

  • 解决:起初在测试里面引用了类中的isAntique方法,后面随着练系的增多,知道原来在输出时没有引用到类本身的方法。
    输入图片说明
    输入图片说明
    输入图片说明
    输入图片说明

代码托管

输入图片说明

上周考试错题总结

  • 错题1:
    输入图片说明

  • 理解:字符串是不可变的,一旦创建了一个字符串对象,它就不能被改变。最短的字符串是“”在引号之间没有字符,所以长度为零。

  • 错题2:
    输入图片说明

  • 理解:编译器能够检测到尝试使用未初始化的变量,在这种情况下它会产生语法错误。如果诸如使用编译器的转义检测,则在使用时发生运行时错误。

  • 错题3:
    输入图片说明

  • 理解:在[0,1)范围内产生一个伪随机数; 乘以10得到范围[0,10)内的数字; 减去5得到范围[-5,5]中的数字。

  • 错题4:
    输入图片说明

  • 理解:这两个声明都是合法的Java。s1是一个String引用,它被初始化为String“testing123”。s2是一个String引用,
        它被初始化为字符串“testing 123”。请注意“测试”和“123”之间的距离。所以这两个字符串是不相等的。

  • 错题5:
    输入图片说明

  • 理解:NumberFormat总是循环; 它从不截断。而且,它提供了货币和百分比的方法。

  • 错题6:
    输入图片说明

  • 理解:导入语句只能与一个(通配符)一起使用。如果您还需要导入包的所有辅助级别,则必须明确写出它们:
         import package.A.
    ;
        import package.B.*;

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

输入图片说明
输入图片说明
输入图片说明
输入图片说明

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 202/202 1/2 15/15 积极主动敲代码
第二周 490/692 1/3 18/33 善于思考
第三周 581/1273 1/4 15/48 善于完善
第四周 1857/3130 1/6 33/81

参考文献

posted @ 2018-04-04 22:43  ⊙ω⊙  阅读(145)  评论(1编辑  收藏  举报