20175202 2018-2019-2 《Java程序设计》第三周学习总结
教材知识点总结
1.编程语言发展阶段:
面向机器语言——面向过程语言——面向对象语言。
2.类声明:
类名必须时合法的Java标识符,两个大括号及其之间的内容是类体。
如果类名使用拉丁字母,那么名字的首字母使用大写字母。
类名要容易识别、见名知意。
3.类体:
类的目的是抽象出一类事物共有的属性和行为,并用一定的语法格式来描述所抽象出的属性和行为。类声明之后一对大括号以及之间的内容称作类体。
类体内容的组成:
- 变量的声明:用来存储属性的值(体现对象的属性)。
- 方法的定义:方法可以对类中声明的变量进行操作,即给出算法(体现对象所具有的行为)。
4.成员变量:
成员变量在整个类内都有效,其有效性与它在类体中书写的先后位置无关。方法内的局部变量从声明它的位置之后开始有效。
成员变量有默认值,局部变量没有默认值;对成员变量的操作只能在方法中;如果局部变量与成员变量的名字相同,方法会隐藏成员变量。
5.构造方法与对象的创建:
构造方法的名字必须与它所在类的名字完全相同,而且没有类型。
在一个类中允许编写若干个构造方法,但必须保证它们的参数不同,参数不同是指,参数的个数不同,或参数个数相同,但参数列表中对应的某个参数的类型不同。
用类声明的变量被称为对象,对象一般声明格式为:类的名字 对象名字。
需使用new运算符和类的构造方法为声明的对象分配变量,即创建对象。
6.类与程序的基本结构:
一个Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中。
7.参数传值:
- 基本数据类型参数的传值:该参数传递的值得级别不能高于该参数的级别。
- 引用类参数传值:一个类中两个对象如果引用相同,二者具有完全相同的变量。
9.实例成员与类成员:
不同的对象实例变量互不相同。
所有对象共享类变量。
通过类名直接访问类变量。
10.方法重载:
一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同。两个方法的而参数不同是指满足下列之一:
- 参数的个数不同。
- 参数个数相同,但参数列表中对应的某个参数的类型不同。
10.this关键字:
this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。
this关键字出现在实例方法中时,this就代表正在调用该方法的当前对象。
11.import语句
教材学习中的问题和解决过程
问题1:对于对象和类的概念有点琢磨不清,感觉过于抽象。
解决方案:反复看课本上的例子,根据类的定义仔细看了一下例子里的代码,然后读到后面,看到创建对象一节时,理解了到底什么是对象。
问题2:在含有多个类的程序运行时,经常出现提示找不到符号的错误。
解决方案:这个问题主要原因出在忘记了第二周学习到的规则,一个程序应只含有一个public类,且运行时要运行主类。
问题3:不理解UML中的关联关系和依赖关系,并且区分不清楚。
解决方案:多次调试书上该部分代码,发现了他们的区别,再加上认真看书,有了一定的理解。
心得体会
首先先承认错误,JAVA很难理解和入门的学科,想要融会贯通更是不易,需要投入大量的自己学习的时间。但自己前两周并没有投入太多的时间精力来认真调试代码,练习编程。这周也周五才开始进行第四章的学习,虽然周末投入了很多时间,但第四章内容很多,并且包括类、对象在内的很多方面都是编程的基础,对后面的学习非常重要。自己好像并没有完全理解他们。在下一周学习第五章的同时,我也会投入额外的时间来补充学习第四章的内容。不过,我认为自己在这周也有很大的收获,在这周里我收获了最多的java基础知识。希望以后再接再厉,能静下心来投入更多的时间。
上周错题总结
1.下列关于创建对象的说法,错误的是
A.创建一个对象包括对象的声明和为对象分配变量两个步骤。
B.使用Student stu;声明对象变量后,stu的内存中还没有任何数据。
C.引用型成员变量的默认初值为0。
D.对象的引用存在堆中,对象的实体(分配给对象的变量)存在栈中。
E.String a=“ab”+“cd”;创建了3个对象。
正确答案: C D
你的答案: C
解析:D项:对象的引用存在栈中,对象的实体存在堆中。
2.下列关于实例方法和类方法的叙述,正确的是
A.类方法不可以操作实例变量,因为在类创建对象之前,实例成员变量还没有分配内存。
B.当创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址。
C.实例方法不能通过类名调用,只能由对象来调用。
D.不必创建对象就可以用类名直接调用static方法。
正确答案: A B C D
你的答案: A B D
解析:书P79-80。