教材学习内容总结
4.1.3
面向对象编程主要体现三个特性
- 封装性
- 继承性
- 多态性
4.2
- 类的定义包括两部分:类声明和类体
- 类体的内容:变量的声明(成员变量或域变量),方法的定义(方法头和方法体)
- 局部变量和成员变量名字相同时候,成员变量隐藏,想使用需要加this,成员变量有默认值,局部变量没有默认值
4.3
类是体现封装的一种数据类型,封装着数据和对数据的操作,类所声明的变量被称为对象
避免使用空对象
局部变量没有默认值
类中的方法也可分为实例方法和类方法.
方法声明时,方法类型前面不加关键字static的是实例方法、加关键字static的是类方法。
构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,而且没有类型。
方法重载的意思是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。方法的返回类型和参数的名字不参与比较
方法重载是一种多态的体现
4.2.5
类体的内容由两部分构成:一部分是变量的声明,另一部分是方法的定义。
定义类需要注意的地方:
1)对成员变量的操作只能放在方法中,方法可以对成员变量和该方法体中声明的局部变量进行操作。在声明成员变量时可以同时赋予初值,但是不可以在类体中有单独的赋值语句,但局部变量必须赋初值。
2)实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量进行操作。
3)一个类中的方法可以互相调用,实例方法可以调用该类中的其他方法,类中的类方法只能调用该类的类方法。
UML图
–第1层是名字层;
–第2层是变量层,也称属性层;
第3层是方法层,也称操作层
构造方法与对象的创建
类是面向对象语言中最重要的一种数据类型,那么就可以用它来声明变量,在用类声明对象后,还必须要创建对象,即为声明的对象分配变量(确定对象所具有的属性)。
使用对象
对象创建成功后,可以操作类中的变量和方法:
1.对象操作自己的变量(体现对象的属性)
–通过使用运算符“.” 对象操作自己的变量(对象的属性)。
2.对象调用类中的方法(体现对象的行为)
–对象创建之后,可以使用点运算符“.”调用创建它的类中的方法,从而产生一定的行为(功能)。
★强调:当对象调用变量时,是指调用分配给该对象自己的变量。在讲述类的时候讲过:类中的方法可以操作成员变量;当对象调用方法时,方法中出现的成员变量就是指分配给该对象的那个变量。
1.一个类创建的两个对象,如果具有相同的引用,那么就具有完全相同的实体
2.在Java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的拷贝。
3.对于基本数据类型的参数,传递的是值的拷贝。同时向该参数传递的值的级别不可以高于该参数的级别 。
4.当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。
可变参数(The variable arguments)数是指在声明方法时不给出参数列表中从某项开始直至最后一项参数的名字和个数,但这些参数的类型必须相同。可变参数使用“…”表示若干个参数,这些参数的类型必须相同,并且最后一个参数必须是方法的参数列表中的最后一个参数。例如: public void f(int … x)
对象的组合
一个类可以把对象作为自己的成员变量,如果用这样的类创建对象,那么该对象中就会有其它对象,也就是说该对象将其他对象作为自己的组成部分,或者说该对象是由几个对象组合而成。
4.7 实例成员与类成员
1 实例变量和类变量的声明
–在声明成员变量时,用关键字static给予修饰的称作类变量,否则称作实例变量(类变量也称为static变量,静态变量)。2 实例变量和类变量的区别
–不同对象的实例变量互不相同
–所有对象共享类变量
–通过类名直接访问类变量
3 实例方法和类方法的定义
–类中的方法也可分为实例方法和类方法。方法声明时,方法类型前面不加关键字static修饰的是实例方法、加static关键字修饰的是类方法(静态方法)。
4 实例方法和类方法的区别
1)对象调用实例方法
–当对象调用实例方法时,该方法中出现的实例变量就是分配给该对象的实例变量;该方法中出现的类变量也是分配给该对象的变量,只不过这个变量和所有的其他对象共享而已。
2)类名调用类方法
从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。和实例方法不同的是,类方法不可以操作实例变量,这是因为在类创建对象之前,实例成员变量还没有分配内存
4.8方法重载与多态
方法重载的意思是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。
this关键字
–this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象.
–当this关键字出现实例方法中时,this就代表正在调用该方法的当前对象。
import 语句
一个类可能需要另一个类声明的对象作为自己的成员或方法中的局部变量,如果这两个类在同一个包中,当然没有问题。
如果一个类想要使用的那个类和它不在一个包中,要使用import语句完成使命。
如果用户需要类库中的类就可以使用import语句。
访问权限
当用一个类创建了一个对象之后,该对象可以通过“.”运算符操作自己的变量、使用类中的方法,但对象操作自己的变量和使用类中的方法是有一定限制的。
访问限制修饰符有private、protected和public,都是Java的关键字,用来修饰成员变量或方法。
对于私有成员变量或方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有方法。
某个类在另外一个类中创建对象后,如果不希该对象直接访问自己的变量,即通过“.”运算符来操作自己的成员变量,就应当将该成员变量访问权限设置为private。
当在另外一个类中用类Tom 创建了一个对象后,如果这个类与Tom类在同一个包中,那么该对象能访问自己的友好变量和友好方法。