既然是专业的,就要有专业的样子
4.1面向对象程序设计概述
面向过程是先设计一系列的算法,然后根据算法再设计数据结构
4.1.1 类
类(class)、构造(construct)、实例(instance),这里的实例应该就是对象
实例中的数据称为实例域(instance field),函数称为方法(method)
实例域的集合叫做状态。
封装的本意是不让方法去直接访问其他的实例域,而是通过方法进行交互。
4.1.2 对象
三个特征:行为(方法)、状态(实例域)、标识(区别,引用)
状态影响行为,行为影响状态
4.1.4 类之间的关系
依赖(uses-a):A用过B,所以A依赖于B,减少依赖,也就是减少耦合
聚合(has-a):A拥有B
继承(is-a)
4.2 预定义类
4.2.1 对象与对象变量
引用=new Object();//通常,希望构造的对象可以多次使用
对象与对象变量是不同的
4.2.3 更改器与访问器
更改器会改变对象的状态
访问器是返回一个更改了状态的新对象
4.3 用户自定义类
一个文件中只能有一个公有(public)类,可以有多个非公有类
文件名需与公有(public)类名相同
编译的时候,会编译出对应数量的class文件
4.3.5 隐式参数与显式参数
类中的方法通常有两种参数,隐式(implicit)参数属于调用者;显式(explicit)参数属于给出的条件
getName属于访问器??感觉不应该是。果然,引用的话,是需要clone的。
但是clone也有问题啊,java是浅克隆吧
4.3.7 基于类的访问权限
Class A中可以访问a对象的私有成员
getOtherName(A a){
return a.name;//这倒是很少用
}