教材学习内容总结
第4章 类与对象
4.1编程语言的发展阶段
面向机器—>面向过程—>面向对象(封装性、继承、多态)
4.2类
类的定义包含两个部分:类声明 和 类体
4.2.1类的声明
类的名字要符合标识符规定
类命名遵守下列编程风格:
(1)如果类名使用拉丁字母,那么名字的首字母使用大写字母,如Hello、Time等。
(2)类名最好容易识别、见名知意。当类名由几个“单词”复合而成时,每个单词的首字母应大写,如ChinaMade
4.2.2 类体
类声明之后的一对大括号 “{ }” 以及它们之间的内容称作类体,大括号之间的内容称作类体的内容。
类体的内容由如下所述的两部分构成:
(1)变量的声明:用来存储属性的值(体现对象的 属性)。
(2)方法的定义:方法可以对类中声明的变量进行操作,即给出算法(体现对象所具有的 行为)。
4.2.3 成员变量
声明变量部分所声明的变量被称为 成员变量 或 域变量。
1、成员变量的类型:成员变量的类型可以是Java中的任何一种数据类型,包括基本类型:整型、浮点型、字符型、逻辑类型;引用类型:数组、对象和接口。
2、成员变量的有效范围:在整个类内都有效,其有效性与它在类体中书写的先后位置无关。(习惯先介绍属性再介绍行为)
3、编程风格:(1)一行只声明一个变量。(2)变量的名字除了符合标识符规定外,名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的其他单词的首字母使用大写。(3)变量名字见名知意。
4.2.4 方法
方法的定义包括两部分:方法头 和 方法体。
方法头:由方法的类型、名称和名称之后的一对小括号以及其中的参数列表所构成。(参数可有可无)
(void不需要返回数据)
方法体:方法声明之后的一对大括号{、}以及它们之间的内容称为方法的方法体。方法体的内容包括局部变量的声明和Java语句,即在方法体内可以对成员变量和方法体中声明的局部变量进行操作。
局部变量:在方法体中声明的变量和方法的参数被称作局部变量,和类的成员变量不同的是,局部变量只在方法内有效,而且与其声明的位置有关。方法的参数在整个方法内有效,方法内的局部变量从声明它的位置之后开始有效。
区分成员变量和局部变量:如果局部变量的名字与成员变量的名字相同,那么成员变量被隐藏,即该成员变量在这个方法内暂时失效。(如果想在该方法中使用被隐藏的成员变量,必须使用关键字 this)
局部变量没有默认值:成员变量有默认值,但局部变量没有默认值,因此在使用局部变量之前,必须保证局部变量有具体的值。
4.2.5 需要注意的问题:对成员变量的操作只能放在方法中,方法使用各种语句对成员变量和方法体中声明的局部变量进行操作,声明成员变量时可赋予初值。
4.2.6类的UML图
UML图属于结构图,常被用于描述一个系统的静态结构。
4.3 构造方法与对象的创建
构造方法:是类中的一种特殊方法,当程序用类创建对象时需使用它的构造方法。类中的构造方法的名字必须与它所在的类的名字完全相同,而且没有类型。允许一个类中有多个构造方法,但必须保证其参数不同(参数不同指:参数个数不同 或 个数相同但类型不完全相同)
注意:如果类中没有编写构造方法,系统会默认该类只有一个构造方法,该默认的构造方法是无参数的,且方法体中没有语句。
a默认构造方法与自定义构造方法:如果类里定义了一个或多个构造方法,那么Java不提供默认的构造方法。
b构造方法没有类型。
创建对象:创建一个对象包括对象的声明和为对象分配变量
对象的声明: 类的名字 对象名字;如:Lader lader;
分配变量:使用new运算符和类的构造方法为声明的对象分配变量,即创建对象。
使用对象
对象操作自己的变量(体现对象的属性)
对象通过使用点运算符“.”(点运算符也称引用运算符或访问运算符)访问自己的变量,访问格式为: 对象.变量;
对象调用类中的方法(体现对象的行为)
对象可以使用点运算符“.”调用创建它的类中的方法,从而产生一定的行为(功能),调用格式为: 对象.方法;
4.7实例成员与类成员
1不同对象的实例变量互不相同
2所有对象共享类变量
3通过类名直接访问类变量
加关键字static的叫做类变量/类方法(皆为静态)
4.8方法重载
方法重载的意思是:一个类可以有多个方法具有相同名字,但这些方法的参数必须不同(参数个数不同;或,参数个数相同,但参数表中的某个参数的类型不同)
多态:一个出现多种状态 重载:继承后发生一些变化
4.9 this关键字
this表示某个对象,不能出现于类方法中
实例方法只能通过对象来调用,不能用类名来调用。this代表正在调用该方法的当前对象。
当实例成员变量的名字与局部变量的相同时,成员变量前面的“this.”或“类名.”就不可以省略。
4.10 包
包是用来区分同名类的。
4.11 import语句
import语句用来引入类库和自定义包中的类
4.12 访问权限
private私有,public公有,protected保护,friend友好,内容与C和C++基本一致。
4.14 对象数组
定义:Student [ ] stu;
stu = new Student[10];
表示数组stu有10个元素,并且都是Student类的对象,但现在还只是空对象,在使用前应当创建数组所包含的对象:
如:stu[0] = new Student();
教材学习中的问题和解决过程
代码调试中的问题和解决过程
其他(感悟、思考等,可选)
变量的首字母需小写;构造方法是没有类型的;
学习进度条
参考资料
·Java学习笔记
·《Java学习笔记(第8版)》学习指导