【问题标题】:Difference between pure object oriented and object oriented language [duplicate]纯面向对象和面向对象语言之间的区别[重复]
【发布时间】:2015-04-24 17:26:32
【问题描述】:

这两者有什么区别。我用谷歌搜索但找不到满意的答案。例如 java 是 oop(面向对象编程)但不是纯 oop(写在某些网站上)。谁能解释一下?

【问题讨论】:

  • Java 强制执行 OOP(即一切都在类中),而 C++ 并不是专门的 OOP 语言,即您可以在 C++ 中做不需要任何类型的 OOP 但受支持的事情。这是你的意思吗?
  • 在纯 OO 语言中,一切都是对象,每个动作都是通过它们进行的(例如 Smalltalk)。在像 Java 这样的语言中,还有其他数据类型、原语,并且可能有静态成员,它们在类上调用(或至少应该是),而不是在对象上。
  • @Phorce:-在java中一切都不在classes.Fe int float(我知道有包装类)。其次java中的数据库在oops中(除非你选择休眠)。跨度>
  • 观看此video,您将真正找到对 OO 真正含义的不同解释。
  • @iasias:是的,一切都在类中,但“在类中”并不意味着“在对象中”。还有,他不是这个意思。他没有说浮点数是一个类,他说浮点数在类中使用(但我同意你的观点,他的观点充其量是模糊和不完整的)

标签: java c++ .net c oop


【解决方案1】:

在纯面向对象的语言中,一切都是对象。但是,在面向对象的语言中,您可能有非对象变量(例如静态变量)。

【讨论】:

  • 为什么静态变量是非对象类型的?
【解决方案2】:

Java 是 oop 但不是纯粹的,因为 Java 中有原始数据类型,如 int、float 等,它们不是类/对象。这只是 java 不是纯 OOP 的原因之一。 例如纯 OOP 。 Objective C 是纯 OOP 语言,其中一切都是对象的形式。

【讨论】:

    【解决方案3】:

    通常,在纯 OO 语言中,一切在该语言中可访问的是一个对象(即使是定义对象的类也可以是元类的对象实例,而元类又可以是它们自身的对象实例)。在 Java 和 C++ 中,有一些不是对象的基本语言元素:最值得注意的是原始数据类型(或内置类型),例如 intfloatchar

    【讨论】:

    • 最好说它们不是类类型 - 在 C++ 中,object 是具有类型的任何内存区域,包括 ints、floats 、chars 等
    • @JosephMansfield 好的,但是 C++ 标准对“对象”一词的使用非常与经典的 OO 对这个词的使用不同。
    • 当然,所以用“类”来描述它,在两种示例语言中基本上具有相同的含义,可能更清楚。或者只是澄清你的意思是“对象”的OOP含义。
    猜你喜欢
    • 2011-10-20
    • 2018-05-21
    • 2013-03-04
    • 2014-06-26
    • 1970-01-01
    • 2011-06-21
    • 2016-03-03
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多