20172319 2018.03.27-04.05 《Java程序设计》第4周学习总结
教材学习内容总结
第四章 编写类
- 类与对象的回顾:对象是有状态的,状态由对象的属性值确定。属性由类中的声明的变量所定义。对象的操作可能改变该对象的状态。对象的操作由 类中声明的方法定义。
- 类的分析:类的成员(类的数据和方法);构造方法(给类赋初值);实例数据(变量声明的位置定义其作用域);UML类图(类及其对象关系可视化描述)。
- 封装:(1) 可见性修饰符:public(公有);private(私有,只能从内部访问);protected(只与继承性相关)。
?? ???????(2)访问器:getX,修改器:setX。
- 方法的分析:调用方法;return语句(获取返回值);实参,形参(方法声明首部中参数名);局部数据(方法内声明并使用)。
- 构造方法的回顾:与类名相同;无返回值;常用于初始化实例对象。
第七章 面向对象设计
- 软件开发活动:开发活动的四个基础过程:确定软件需求-软件设计-实现软件设计-软件测试。
- 明确类和对象:类的识别(给类命名、分清问题所在域);类的职责(声明方法去定义一个对象的行为)。
- 静态类成员:静态变量/类变量(static,,由所有类实例共享);静态方法(通过类便可调用);main方法(只能访问静态变量或局部变量)。
- 类间关系(最基本:依赖、聚合和继承):依赖(A必须通过访问B的实例来调用方法,类的对象可作为参数传递给本类的方法);
?? ?聚合(对象集合成对象、包含关系);this引用(当前正在运行的对象;区分同名的构造方法参数和实例变量)。
- 接口(与对象交互的公共方法):一组常量和抽象方法的集合;不能被实例化;可以由多个类实现同一个接口,一个类可以实现多个接口;
?? ?Comparable接口(compare to方法);Iterator接口(操作一次移动至下一个对象)。
- 枚举类型(特殊的类):其实例为枚举值,其值为对象;内含静态方法values(返回所有枚举值的列表(是一个迭代器,可用for循环语句处理其值))。
- 方法设计:方法分解(一个方法分解为多个方法);方法参数的传递方式(按值传递;按引用调用)。
- 方法重载:使用同一方法名调用多个方法。
- 测试:审查;缺陷测试(黑盒测试和白盒测试)。
教材学习中的问题和解决过程
- 问题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 | 累 |
原文地址:https://www.cnblogs.com/Tangcaiming/p/8719598.html
时间: 2024-11-05 20:37:56