20155228 2016-2017-2 《Java程序设计》第3周学习总结
教材学习内容总结
认识对象
类与对象
- 类和对象的关系:类是对象的设计图,对象是类的实例
- 参考:将“名牌”指定到新建的对象上
- 定义值域成员:在新建的类中定义变量
- 构造函数:构造函数是与类名称同名的方法
- 在操作对象时,=是用来指定参考名称参考某个对象,==是用来比较两个参考名称是否参考同一个对象,!=是比较两个参考名称是否没有参考同一个对象。
基本类型打包器
- 如果要让基本类型像对象一样操作,可以使用Long、Lnteger、Double、Float、Boolean、Byte等类来打包,这些类就是所谓的打包器。
数组对象
- 数组复制不能直接将A指定等于B,而是需要使用特定的命令。
- 在Java中数组一旦确定长度就确定了,不能再修改了。
System.arraycopy();
Arrays.copyOf();
字符串对象
- 在Java中为了效率考虑,以引号包括的字符串,只要内容相同,无论在代码中出现几次,JVM都只会建立一个实例,并在字符串内维护。
- 在Java中,字符串对象一旦建立就无法更改对象中的任何内容,对象上没有任何办法可以改变字符串内容。
对象封装
何为封装
- 构造函数可以封装对象初始流程,构造函数是与类名称同名的方法,不用声明返回类型。
- 在类中定义方法可以封装对象操作流程。
- private是用来封装私有数据防止用户直接存取,如果没有提供方法存取private成员,用户就不能存取,如果有提供方法,用户也只能按照方法定义的流程存取数据。
语法类细节
- public权限修饰:可以用在类、方法、数据还有构造函数上,使得其他包的类可以直接使用。
- 关于构造函数:如果写了构造函数的话在新建对象时就需要通过构造函数流程,设定构造函数参数的值。
- 构造函数与重载:定义多个构造函数,参数类型或者个数不同,用一致的名称来调用类似功能的方法。
- 使用this:可以在构造函数中调用另一个已定义的构造函数。
- static成员:被声明为static的成员,不会被个别对象拥有。通过类名称与点运算符来取得static成员。
- 不定长度自变量:使用不定长度自变量时,方法上声明的不定长度参数必须是参数列的最后一个。
教材学习中的问题和解决过程
- 关于装箱和自动装箱在细节上的差异:自动装箱是装箱的简化,不需要再按照一般的类类型新建对象使用new的模式新建对象。但是在自动装箱时,如果传入的值在定义的数值范围内,程序就会检查前面的缓存中有没有打包过相同的值,如有就不会再新建对象。
- 关于类类型建立数组:和基本类型建立数组时不赋值的话就用默认值不同,类类型在建立数组时不赋初值的话建立的实例个数就是0个。
代码调试中的问题和解决过程
- 课后练习选择题第十题:把题目中的代码敲进去发现编译错误。仔细检查发现在调用方法时的不应该是用返回值的名称,而应该是类名称.方法名称,但是编译还是错误。后来发现这是在用static的格式调用方法,所以方法定义时要加上static。
代码托管
- 代码量截图:
上周考试错题总结
- 题目:2.判断:教材P51,第8题,执行命令java –cp classes cc.openhome.Main和cd classes java cc.openhome.Main cd ..等价。(OK)
- 分析:这道题我试了一下的确是等价的。
- 题目:3.CH03 判断:Java中, 数字235的类型是int。(OK)
- 分析:教材P67:程序中写下一个整数时默认使用不超过int类型长度。
- 题目:6.CH03 填空:~0b1011的十进制值是(-12)
- 分析:计算机中数据以补码形式存储,补码运算就是逐位取反。1011的补码是1011取反为0100还原为1100所以是-12
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第三周 | 210/340 | 1/3 | 9/30 |
-
计划学习时间:9小时
-
实际学习时间:9小时
-
改进情况:上周老师在博客中要求我加强练习,所以这周就多花了些时间写代码,并提高了上传代码的频率。