20165233 Java第四章学习总结
20165233 2017-2018-2 《Java程序设计》第三周学习总结
教材学习内容总结
-
基础
-
类:包括类声明和类体。
- 其中类声明的变量被称作对象变量,简称对象。
- 类体中包括两部分:一部分是变量的声明,体现数据,即属性;另一部分是方法的定义,体现操作,即行为。
-
构造方法与对象的创建
- 构造方法分为默认构造方法与自定义构造方法,构造方法没有类型。
- 创建对象分为对象的声明和为对象分配变量(new运算符)两个步骤。
-
类与程序的基本结构
-
-
重点
- 参数传值
- 传值机制:方法中参数变量的值是调用者指定的值的拷贝。
- 两种方式:基本数据类型参数的传值,引用类型参数的传值。
- 对象的组合
- 一个类声明的两个对象如果具有相同的引用,二者就具有完全相同的变量
- 参数传值
-
理解
- 实例成员与类成员
- 有关键字static得失类变量,其余为实例变量
- 实例变量通过对象去访问;类变量通过类名去访问。
- 实例方法中不仅可以操作实例变量,也可以操作类变量;类方法不能操作实例变量。
- 方法重载:一个类中可以有多个方法具有相同的名字,但参数必须不同。
- this关键字
- 包
- import语句
- 实例成员与类成员
-
实用
- JRE扩展与jar文件
教材学习中的问题和解决过程
- 问题1:教材54页中,一个示例:
class Factory {
float [] a;
Workman zhang;
}
class Workman {
double x;
}
zhang是Workman类声明的变量,即对象。类声明的变量与对象有何区别?
-
问题1解决方案:在网络中搜索获得的解答是:对象是由类产生的个体,是对一个客观实体的描述;变量是对象的属性,是对对象的引用。例如,类比作一个人类;对象比作一个类的实例(我自己);变量比作我的名字、身高。
-
问题2:声明对象与创建对象的区别?
-
问题2解决方案:声明对象一般是
类的名字 对象名字;
,例如Lader lader
;创建对象是使用new运算符和类的构造方法为声明的对象分配变量 -
问题3:什么情况下需要使用构造方法?
-
问题3解决方案:使用构造方法的好处是可以在对象初始的时候就对某些变量赋值等操作。这样可以提高效率,相比对象创建出来,set成员变量的方式更能减少调用对象的方法的错误,也更简便。
代码调试中的问题和解决过程
- 问题1:在学习类与程序的基本结构时,例子5书上建议将多个类分别放在不同的源文件中,按照此方法,编译Example4_5.java后,我在
bin
文件夹中没有发现自动编译Rect.java和Lader.java所产生的字节码文件,并且编译Example4_5.java时,为什么程序报错了“找不到符号”的内容?(已经单独编译过Rect.java和Lader.java)
- 问题1解决方案:在
src
文件夹中新建一个文件夹ch04
,只放入Example4_5.java、Rect.java和Lader.java。然后通过命令行javac ch04/*.java
,便可成功编译。
代码托管
上周考试错题总结
- 错题1:表达式
-2>>>1
的值为?
原因:对于移位符号的使用有些不清楚,-2
应该使用32位的补码来进行运算也不清楚。
理解情况:-2=1111 1111 1111 1111 1111 1111 1111 1110
向右移动1位之后,最高位用0补,移位后可得0111 1111 1111 1111 1111 1111 1111 1111
,即2^31-1
。
- 错题2:下列错误的初始化语句是:B.
char str[100]="hello"
;D.char str[]={'hello'}
原因:对于字符串的一些书写规则不太熟练。
理解情况:B选项中[]
不能写数组的大小,D选项中一个单词不能直接写入括号内,必须单个字符分开。
(有些题目不知道是否做错,之后会补充错题总结。)
其他
本周学习感觉难度增大许多,类与对象这里有很多令人难以理解的概念与知识点,通过敲代码,结合微课视频,分析一整个程序,把对应的例如对象、方法、局部变量、成员变量之类的东西标在语句旁边,更有利于理解,并重复,达到看懂一个程序的目的。微课的老师利用画一个程序的示意图,也是帮助我更好理解程序的方法,之后可以尝试自己分析程序的时候,亲自动手画,来检验自己是否真的理解了此程序。