从根源上来谈谈什么是面向对象?

感觉自己是知道的,但是仔细的往深处想就模糊了?

阅读 7.2k
18 个回答

面向对象是对代码的一种组织形式,提高了抽象层次,隐藏了一些数据和底层逻辑,个人理解是这样

嗷~ 我们应该把面向对象思想上升到哲学去看待←_←。可以说万物皆为对象。现实中的任何事物我们总能把它抽象为一个具体的带有静态属性与动态操作的对象。当然事物之间会存在联系。那么这种联系在对象间就表现为通过对象方法来进行对象间的操作和变换。语言不太会表达,大概酱紫~

抽象出世界是一维的,是对象。

对问题进行抽象!

根源就是复制

个人感觉根源就是抽象,对物理实体的数据化抽象

就是代码的复用,就像一件事情本来自己做,把他放到一个专业的人来做。

一句话可以划分为主谓宾定状补。
主:对象(类)的调用者,调用对象(类)者自然不在对象(类)中描述。
谓:对象(类)的方法,一般要用动词(你的函数方法用动词吗?)
宾:对象(类)变量,谓语支配描述的对象。一般要用名词。
定:修饰宾语,扩充对象(类)变量,用类继承描述。一般用名词,形容词。
状补:谓前为状谓后为补,一般体现在方法参数中,也可以体现在方法重载。

面向对象的本质,就是尽最大可能贴近人类语言。你写的一个类,读起来就像是一组短语。

class 苹果 {  // 对象
    constructor(颜色) {
        this.color = 颜色;  // 这就是宾语
    }
    吃(几个) {  // 谓语
    }
    洗(几个) {  // 谓语
    }
}

读着就是 “吃几个{颜色}苹果?” “洗几个{颜色}苹果?”
加上调用者"你”,就是一段程序了。“你吃几个{颜色}苹果?” “你洗几个{颜色}苹果?”

    很简单 面向对象就是生成对象的方式。(JavaScript中的面向对象)
    面向对象和基于对象区别   面向对象就是高效生成数据的方式
     而基于对象把JavaScript  分成几个类   然后再每一个类拿出实例去学习研究  实例的的特点方法类的其他实例也存在 

面向对象三个概念继承,封装,多态。就是为了代码复用。同时隐藏实现细节,让更多的精力放在与业务相关的逻辑实现上

新手上路,请多包涵

都说中国人是实用主义,但是为啥就在某些地方总是要搞的很高大上呢? 面向对象其实非常简单: 只是简单地代码管理方式。为了代码方便查找,修改和复用。其它什么也没有,不用搞得什么哲学什么的。
对于初学者: 主意单一职责, 按照概念划分类,不用太在意关联关系是聚合还是依赖。等到你用多了,自然就会慢慢有自己的风格。
但要切记,不了解需求就没有面向对象设计。需求的逻辑就是你设计的逻辑。 面向对象设计需要的不是概念原则,而是感觉。最后你会发现,感觉到了就是对了。

面向对象。。就是要做什么事情先画个圈,定义出来,表示有这个东西,然后具体实现,在一定高度上去描述事物

面向对象就是从事务中抽相出共性,用一个类来描述;再从这些共性中派生出一个新的,各自特有的类。

比如企鹅和鸡都是一种鸟,所以鸟事他们中共有的类,有着产卵这一以共同的行为(看做函数)。

但是两者在其上又有了各自的独有行为,比如企鹅会游泳,鸡会飞。这就是面向对象的程序设计,抽象出共性,发展处个性。

OOP、OOA、OOD中面向对象,主要是用面向对象的思维去抽象事务的复杂性,主要是分解

我觉得是基于人类对于世界一切树形结构的分类方式的总结

回答问题的人这么多了,干脆把这改成交友贴算了~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏