万物皆为对象
面向对象编程OOP
OOP允许根据类型来描述问题,而不是根据运行解决方案的计算机来描述问题。
1)程序是对象的集合,它们通过发送消息来告知彼此所要做的。可以把消息想象为对某个特定对象的方法的调用请求。
2)每个对象可以通过创建包含现有对象的包的方式来创建新类型的对象。因此,可以在程序中构建复杂的体系,同时将其复杂性隐蔽在对象的简单性背后。
3)某一个特定类型的所有对象都可以接收同样的消息。
每个对象都有一个接口
一旦类被建立,就可以随心所欲地创建类的任意个对象,然后去操作它们。接口确定了对某一特定对象所能发出的请求。但是在程序中必须有满足这些请求的代码。这些代码与隐藏的数据一起构成了实现。
Light |
---|
on() |
off() |
brighten() |
dim() |
Light it = new Light();
it.on();
上例中,创建了一个Light对象,定义这个对象的引用“it”,然后调用new方法来创建该类型的新对象。为了向用户发送消息,需要声明对象的名称,并以圆点符号连接一个消息请求。这些差不多就是用对象来进行设计的全部。
被隐藏的具体体现
程序开发人员按角色分为类创建者和客户端程序员
类创建者:构建类,这种类只向客户端程序员暴露必须的部分,而隐藏其他部分。(因为类创建者可以修改被隐藏的部分,不用担心对其他人造成任何影响。被隐藏的部分通常代表对象内部脆弱的部分,很容易被客户端程序员所毁坏,这样可以减少bug。)
客户端程序员:收集各种用来实现快速应用开发的类。
Java用三个关键字在类的内部设定边界:public、private、protected。
public表示对任何人都是可用的。
private表示除了类型创建者和类型内部方法之外的任何人都不能访问的元素。
protected与private作用相当,差别仅在于继承的类可以访问peotected成员,但是不能访问private成员。