4.1 面向对象程序设计概述
简称 OOP
4.1.1 类
由类 构造 对象的过程,称为创造类的 实例。
对象中的数据称为 实例域,操纵数据的过程称为 方法。
对于每个特定的类实例(对象)都有一组特定的实例域值。就是这个对象的当前状态。
4.1.4 类之间的关系
依赖:一个类的方法操纵另一个类的对象,一个类依赖另一个类;
聚合:类a的对象包含类b的对象;
继承
4.2 使用预定义类
4.2.1 对象与对象变量
JAVA中,使用构造器构造新实例。(一种特殊的方法)。构造器名字与类名相同。
对象与对象变量区别。不能将对象方法,应用于对象变量。
4.2.3 更改器方法与访问器方法
更改器方法:调用方法后,对象的状态会改变;
访问器方法:只访问对象,不修改。
4.3 用户自定义类
4.3.1 Employee类
在一个源文件中,只能有一个公有类。
4.3.2 多个源文件使用
使用通配符编译或者java编译期自动查找
4.3.4 构造器开始
构造器伴随new操作执行时被调用;不能对已经存在的对象调用构造器。
不要在构造器中定义域实例域重名的局部变量
4.3.6 封装的优点
不要编写返回引用可变对象的访问器方法。
如果要返回一个可变对象的引用,首先对他进行克隆。
4.3.7 基于类的访问权限
一个方法可以访问所属类的所有对象的私有数据。
4.3.9 final实例域
将实例域定义为final是,构建对象时,必须初始化。后续不能再修改。
4.4.1 静态域
定义为static,则每个类只有一个这样的域
4.4.3 静态方法
静态方法不能向对象实施操作。
Employee类的静态方法,不能访问Id实例域,可以访问自身静态域。
通过类名调用静态方法。(建议类名而不是对象名)
两种情况使用:1、不需要访问对象状态,所需参数都是显式参数提供;2、只需要访问类的静态域。
4.5 方法参数
按值调用:方法接收的是调用者提供的值
按引用调用:方法接收的是调用者提供的变量地址。
4.6 对象构造
4.6.1 重载
多个方法有相同的名字,不同的参数,产生重载。
4.6.4 显式域初始化
初始值不一定是常量值,可以调用方法对域初始化。
4.6.6 调用另一个构造器
构造器第一个语句是 this(...) ,将调用同一个类的另一个构造器
4.6.7 初始化块
先运行初始化块,再运行构造器主题
4.6.8 对象析构与finalize方法
可以为任何类添加finalize
4.7 包
所有标准java包都处于java和javax包中
4.7.1 类的导入
一个类可以使用所属包中的所有类,其他包的公有类