JAVA面向对象之抽象

一、面向对象思想

1.抽象过程

所有编程语言都提供了一套抽象机制(对问题的抽象)

汇编语言是对底层机器的轻微抽象,CBASIC语言是对汇编语言的抽象。但是他们在解决问题时依然要求基于计算机的结构(面向过程),而不是基于问题来解决。所以程序员在解决问题时,经常需要建立机器模型<----->实际问题之间的关联。

面向对象则通过提供问题中涉及到的元素(对象),使得程序员不再受限于任何特定类型的问题。因为OOP的实质是:程序可以通过添加新类型的对象使自身适用于某个特定问题,所以,当阅读问题解决方案的代码时,实际上也是在阅读问题的表述(各对象协调配合共同完成这个问题的过程,实际上就是在描述这个问题)。所以OOP是根据问题来描述问题,而不是通过运行解决方案的代码来描述问题。

对象具有状态(每个对象的内部数据),行为(方法,方法的调用产生行为)和标识(用来唯一的与其他对象区分开来,在内存中的对象,都有唯一地址来标识)。

面向对象的五个基本特性:

1.)万物皆对象。对象也是一个变量,只不过是一个特殊的变量。他可以存储数据,还可以被要求执行自身上的操作。我们可以将任意待解决问题的任意概念化构建(狗,猫,建筑物)抽象为程序中的对象

2.)序是对象的集合,他们通过发送消息来告知彼此所要做的。要想请求一个对象,就必须给该对象发送一条消息。消息实质上就是对某个特定对象的方法的调用请求。

3.)每个对象都有自己的存储,这个存储由其他对象所构成。可以通过创建包含现有对象包的形式来创建新类型的对象(对象)。所以程序中可以构建复杂的体系,同时可以将复杂性隐藏在对象简单性的背后。

4.)每个对象都拥有其类型。即每个对象都是一个‘类’的实例。‘类’就是‘类型’的意思,每个类最重要的区别就是‘可以发送什么样的消息给他’(可以调用它的什么方法)

5.)某一特定类型的所有对象都可以接受同样的消息。举个例子:“圆形”和“几何形”,“圆形”同时也是“几何形”,所以,一个“圆形”对象必然能接收所有发送给“几何形”对象的消息。这意味着在“圆形”对象中可以编写与“几何形”交互并自动处理所有与“几何形”性质相关的事物的代码。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章