java 面对象的思想

来源:互联网 发布:淘宝买家可以延长收货 编辑:程序博客网 时间:2024/06/12 00:24

学习java那么久了,突然对于java的面向思想这个本应该很熟悉的概念有些许陌生,试问自己写了那么长时间的java程序了,对于java中面向对象的思想又能理解多少呢?

曾经学习C语言的时候,介绍C语言是面向过程的时候,我没有一点意识,面向过程是什么,老师讲了面对过程就是针对问题的解决是线性顺序的是以人的认知思想开始,首先做什么然后做什么最后做什么,是啊,我每次做一件事情的时候都是要想开始怎么做 然后怎么做最后怎么做,这就是面向过程吧,我这样理解着,

在我学习java之前,我一直在徜徉在过程的C语言中,虽然学习的很初级,但是当时的我还是感觉编程真的好牛的,让别人看起来是多么的高大上的职业啊,

在大学中我开始接触了java语言了,说实话 当时第一次接触的时候完全没有什么概念,不是讲了就忘,是根本理解不来,,,天书就是这样耍酷的,

可能是基于我个人原因,我的性格比较单一,就是不灵活那种,死板,对于接触新思想啥的还是很抵触滴,因为感觉自己无法理解,想理解就头大,哎真是醉了。

好像跑题了 回来哈,

我之所以说面向过程,就是要和面向对象进行相互比较,这样才能总结出它们的异同,然后更有针对性

其实到现在的我对于面向过程的理解可能还是不够彻底,我觉得面向过程就是顺序的执行的步骤,就是一步一步的执行的概念是如何去做,那样的步骤,

面对对象对我来说就是把要做的事情,找到其中的对象,做事情其实就是对象之间的关联操作,这样就提升到我们人类认知事物的习惯,

比如一件事件 小明踢足球这样一个描述

面对过程 直接是小明踢足球这样一个过程的实现,

面对对象 首先小明和足球都是对象 小明对象中可以有跑 踢等方法行为,那么对于球本来来说它可以有动,静,滚这样动作体现,这些动作都是针对于对象来说的

那么小明踢球来说  小明{   踢 (球){ 球.滚() }},球{滚(){‘球滚动’}}这样的实现

那么在小明和球之间是两个对象之间的相互关系,相互动作在影响

然后开始抛相关的概念了

 

 

Smalltalk 的五个基本特性,这些特性表现了一种纯粹的面向对象程序设计方式:


1. 万物皆为对象。将对象视为奇特的变量,它可以存储数据,除此之外,你还可以要求它
在自身上执行操作。理论上讲,你可以抽取待解问题的任何概念化构件(狗、建筑物、
服务等),将其表示为程序中的对象。


2.  程序是对象的集合,它们彼此通过发送消息来调用对方。要想产生一个对对象的请求,
就必须对该对象发送一条消息。更具体地说,你可以把消息想象为对某个特定对象的方
法的调用请求。

 


3.  每个对象都拥有由其它对象所构成的存储。你可以通过创建包含现有对象集合的包的
方式来创建新类型的对象。因此,你可以在程序中构建复杂的体系,同时将其复杂性通
过对象的质朴性得以屏蔽。


4.  每个对象都拥有其类型(Type)。按照通用的说法,“每个对象都是某个类(Class)的
一个实例(Instance)”,其中“类”就是“类型”的同义词。每个类中最重要的区别于其它
类的特性就是“你可以发送什么消息给它?”


5.  某一特定类型的所有对象都可以接收(Receive)同样的消息。这是一句意味深长的表述,
你在稍后便会看到。因为“圆形(circle)”类型的对象同时也是“几何形(shape)”类型
的对象,所以一个“圆形”对象必定能够接受(accept)发送给“几何形”对象的消息。这
意味着你可以编写与“几何形”交互并自动处理所有与几何形性质相关的事物的的代码。
这种“可替代性(substitutability)”是 OOP中最强有力的概念之一。

对象也是一种意识体现,它可以被表示成任何你想要表示的东西 ,

对象也是抽象的,看似不存在是人的一种认知的体现,他是人类智慧的伟大结晶,

它提供的解决问题的一种思想形式。面向对象,体现了人类想象空间的广阔和真实

 

 

 

0 0
原创粉丝点击