OOP特点:
1.万物皆对象;2.一个程序是一群对象通过传递数据告诉彼此什么需要去做;3.每个对象有他自己的内存空间去组成;4.每个对象都他的类型(type):每个对象是一个类的实例(instance),“class”与“type”同义,最重要的判断一个类的特征是:“什么信息你能传给他?”5.同个类型(类)的对象可以接受相同的信息。
Booch 提供了一个甚至更简明的表述对于一个对象(object):一个对象(指)有状态、行为、身份。
这就意味着一个对象能有内部数据用来给予状态、方法用来提供行为,每个对象可以被判断是独一无二的--当实例化时,每个对象会被给予独一无二的内存地址。
为甚需要接口(implementation)?
接口它提供的是一个(类的)规范。
一个对象提供服务
将对象视为服务提供者是一个简明的工具,这是非常有用的不仅在设计程序的时候,而且当一些人视图去理解你的代码的时候或者重新利用一个对象。如果他们能看见基于它提供的服务(即是实际操作中的方法)的对象的值,这使得修复一些设计变得更加容易。
被隐藏的接口(implementation)
如果没有对接口的限制,那么世上所有事物都将是赤裸的。
所以存取控制的第一个理由是去保持用户方的编程人员不插手他们所不应该接触的部分--一些对于内部操作很重要但是不应该被用户所需要去解决他们自己的问题的数据类型(即是类)。这对于客户方编程人员也是一个服务,因为他们能够简单的看到什么是重要的什么是可以忽略的。
第二个里有是允许库(接口)设计者能改变一些类的内部工作方式而不用担心会影响到客户端编程人员。
Java通过三个明确的关键字去设置一个类的界限:public,private,protected。这三个存取描述表明谁可以被允许使用这些类:
1.public意味着所有访问者都是被允许访问操作的;2.private关键字跟public相反,意味着除了这个类的创建者(你自己)和这个类的方法,没有人可以访问这个类,可以说private是一个砖墙(brick wall)隔断你和客户端编程人员,如果有人想强行调用这个类,将会产生编译时错误(compile-time error);3.protected关键字的行为很像private,区别在于被protected修饰的类能被继承它的类所访问。4.Java还有一个default(package-private)修饰符用于修饰类,被该关键字修饰的类能被同个包的其他类访问到,而对不同包的类来说,它就相当于被private关键字修饰的类。
重复利用接口
1.当一个类被创建和测试时,它应该被代表为一个有用的代码单元。这就意味着这种可重复性不是简单去实现被希望的一些业务,而是当你有这一个设计时,它祈求被重复利用。代码重复利用对于面向对象编程(OOP)是最棒的优点。2.因为继承是如此的重要在面向对象编程思想上,所以它经常被强调,而且新的编程人员能够得到一个这主意:继承应该被用在任何地方,可就导致了设计代码时的滥用。要代替这种滥用的是:当设计一个新的类的时候,你应该让它朝着简单和灵活的状态设计。如果你懂得这个方法,你的设计将会变的简洁。当你有了一些经验,你会知道什么时候你需要用到接口。