当前位置:  开发笔记 > 编程语言 > 正文

寻找纯面向对象的语言

如何解决《寻找纯面向对象的语言》经验,为你挑选了8个好方法。

我认为面向对象编程被高估了,但我想学习这个范例.我一直在尝试使用QT 4在PHP 5和C++中执行此操作.不幸的是,我倾向于以结构化方式编程,我不使用很多继承也不使用多个实例.我想我必须学习一种纯粹的面向对象语言,迫使我使用上述功能.

我认为最好的选择可能是学习Ruby.您能否确认或命名更好的替代方案?

我主要在x86-64 Linux上工作.



1> Robert Carta..:

面向对象的编程与语法无关.它是一种编程范式.

语言可以强制您使用对象(例如,如果一切都是对象),但使用其中一种语言不会"强迫"您学习面向对象的编程.

我不使用很多继承,也不使用多个实例

您必须了解何时以及为何使用这些技术(数据抽象,封装,多态和继承)来思考对象.在面向对象编程中获得一个很好的参考,并使用您最熟悉的任何语言(支持OOP)来应用这些技术.



2> Alexander Ge..:

如果您想要纯OO语言,请尝试使用Smalltalk.一切都是Smalltalk中的一个对象.这不是Java的情况,其中原始类型(int,float)本身不是对象.

如果它不是一个'纯'OO语言,Java是一个很好的选择,因为它更主流.


是的,Smalltalk与事情一样严格.据我所知,除了`self`(相当于其他语言中的`this`)之外,没有运算符和命令,我认为指向"静态"类成员的东西.其他一切都是对象,而其他一切都是对象.这就是代码块是对象,你应用`If`和`ElseIf`方法/消息.因为没有运算符优先规则,所以在进行算术时也必须重新考虑,因为`+`和`*`是应用于数值对象的方法,因此按照出现的顺序进行评估.

3> t0mm13b..:

对于纯面向对象的语言,请查看Smalltalk.我现在正在读这篇文章.

希望这可以帮助.



4> KLE..:

问题是不是真正的语言,但你使用它的方式.

我们不使用OO功能,因为它们很花哨,但是因为我们获得时间(包括长期运行).

我可以建议您的代码审查您的代码吗?你讨论一下吗?你可以复习一下吗?我认为反馈对你的帮助远远超过阅读,或单独编写代码,你不必面对或讨论具体代码的东西.



5> Max Galkin..:

在Mono上尝试Java或C#.

理由:

    我尊重Smalltalk,并且应该知道它的概念以更好地理解OOP,但学习语言本身是不切实际的恕我直言.

    虽然Java和C#可能不是"绝对纯粹"的OOP(例如它们已经结合了一些函数式编程方法),但它们本质上是基于OOP的,它们是主流的(因此具有更大的社区)并且它们更容易学习比Smalltalk恕我直言.


Mono是一个框架,而不是一种语言.我猜你的意思是C#.
借调.如果你想要一个脚本语言,学习Ruby,但如果你想学习一门实用的语言来学习OOP,Java或C#就是这样.Smalltalk在学术界以外的任何地方都没有被广泛使用,埃菲尔也没有; 拥有广泛的支持和问答网站,Java/C#似乎是明显的赢家.
@fortran:我们应该建议Michas学习Smalltalk-80,然后才能学习_useful_?
@FrustratedWithFormsDesigner,tommieb75 - 不,所有C#类型(包括int,bool等)都派生自System.Object.

6> FrustratedWi..:

很多人都在暗示Smalltalk,所以我会与众不同并建议让埃菲尔.;)

学习OO原则的好语言,也有像DBC(Design By Contract)这样的好东西.



7> Brandon Bodn..:

问题不在于语言.无论您使用何种语言,您仍然可以在一个类中编写所有代码,或者使用类级方法,并最终编写结构化代码.虽然纯粹的OO语言会让它变得更难,但我已经给了很多学生,他们试图将结构化编程变成Java和C#.

我的建议是查看OO编程的一些很好的例子,并看看OO如何使自己适应某些设计模式,这些模式真正展示了OO的功能,使结构编程能够做同样的事情,但代码更少,更多其他程序员可以读取.



8> Sanjeev Kuma..:

阅读实施Smalltalk的Daniel HH Ingalls 撰写的文章 Design Principles Behind Smalltalk.它决定了OOP的真正本质.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有