什么是面向对象

Alan Kay 大牛 总结过“纯粹”的面向对象程序设计方法是什么样的:

(1) 所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。
(2) 程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那个对象“发送一条消息”。更具体地讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个子例程或函数。
(3) 每个对象都有自己的存储空间,可容纳其他对象。或者说,通过封装现有对象,可制作出新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。
(4) 每个对象都有一种类型。根据语法,每个对象都是某个“类”的一个“实例”。其中,“类”(Class)是“类型”(Type)的同义词。一个类最重要的特征就是“能将什么消息发给它?”。
(5) 同一类所有对象都能接收相同的消息。这实际是别有含义的一种说法,大家不久便能理解。由于类型为“圆”(Circle)的一个对象也属于类型为“形状”(Shape)的一个对象,所以一个圆完全能接收形状消息。这意味着可让程序代码统一指挥“形状”,令其自动控制所有符合“形状”描述的对象,其中自然包括“圆”。这一特性称为对象的“可替换性”,是OOP最重要的概念之一。

 

心得: 一切都是对象在Java中很好的体现出来 对象有自己的属性和方法,他更加真实,更加符合我们人的思想,

就像电灯最经典的例子,但我们看到电灯就可以知道他的一些属性和知道他用途,但有的东西可能需要看说明书才能

知道 说明书可就是这类灯的一个库,他可以返回一些我们看到电灯却无法得知的属性,需要调用库知道他的属性

对象的统一抽像 就算是一万中等肯定都有 “打开”,“关掉”这两种方法 所以这灯的一万种子类都有共同性

这一万种子类”打开“,“关掉” 的方法名是一样的 至于怎么实现就是这些类的创建者要关心的了,我们只要知道

“按开关”(调用函数)就好了

你可能感兴趣的:(什么是面向对象)