本人的GitHub:戳我一下
类是构造对象的模版,由类构造对象的过程称为类的实例化,就像你想造汽车,那类就是造汽车的图纸,对象就是汽车。对象中的数据称为“域”,函数称为“方法”。(叫法不同的也不是我的错误,书中叫法也不一样)
要想使用OOP(面对对象编程),一定要清楚对象的三个特性:
- 对象的行为——可以对对象施加那些操作,或可以对对象施加那些方法?
- 对象的状态——当施加那些方法时,对象如何响应?
- 对象的标识——如何辨识具有相同行为与状态的不同对象?
类之间的关系:
- 依赖:即“uses-a”关系,如果一个类的方法操纵另一个类的对象,我们就说这个类依赖另一个类。例如:Order类使用Account类,则Order类依赖Accout类。
- 聚合:即“has-a”关系,聚合意味着类A的对象包含类B的对象。例如:Book类和Word类就是聚合关系。
- 继承:即“is-a”关系,表示的是特殊与一般的关系,例如:Book类和MathBook类。
构造器:
- 构造器必须与类同名
- 每个类可以有一个以上的构造器
- 构造器可以有0个,1个,多个参数
- 构造器没有返回值
继承就是有由一个已经存在的类派出一个新类,原来的类称为“父类”,新类称为“子类”,子类包含父类的所有域和方法,子类可以访问父类中除标记为private外所有的域和方法。
访问权限修饰词:
- default:如果不表明访问权限,就是默认的包访问权限,处于同一个包里的类都可以访问该类的域和状态,但包外的类不可以访问。
- public:所有的类都可以问该类的域和方法。
- private: 只有该类的方法可以访问该类的域和方法。
- protected:子类和同包里的类可访问该类的域和方法。
final关键字:
- final定义的域的不可改变。(相当于常量)
- final定义的方法不可覆盖。
- final定义的类不可继承。
静态域和静态方法:
- 用static定义静态域和静态方法
- 静态域是属于类的,一个类可以有无数个对象,对于普通的域来说每一个对象都有一份普通域,每个对象的普通域都属于自己的,但是静态域不是这样,对所有的对象静态域只有一个,可以直接通过类名调用静态域。
- 静态方法不可以访问普通域,只能访问静态域。
关于这部分的内容有点多,未完待续