我认为面向对象编程被高估了,但我想学习这个范例.我一直在尝试使用QT 4在PHP 5和C++中执行此操作.不幸的是,我倾向于以结构化方式编程,我不使用很多继承也不使用多个实例.我想我必须学习一种纯粹的面向对象语言,迫使我使用上述功能.
我认为最好的选择可能是学习Ruby.您能否确认或命名更好的替代方案?
我主要在x86-64 Linux上工作.
面向对象的编程与语法无关.它是一种编程范式.
语言可以强制您使用对象(例如,如果一切都是对象),但使用其中一种语言不会"强迫"您学习面向对象的编程.
我不使用很多继承,也不使用多个实例
您必须了解何时以及为何使用这些技术(数据抽象,封装,多态和继承)来思考对象.在面向对象编程中获得一个很好的参考,并使用您最熟悉的任何语言(支持OOP)来应用这些技术.
如果您想要纯OO语言,请尝试使用Smalltalk.一切都是Smalltalk中的一个对象.这不是Java的情况,其中原始类型(int,float)本身不是对象.
如果它不是一个'纯'OO语言,Java是一个很好的选择,因为它更主流.
对于纯面向对象的语言,请查看Smalltalk.我现在正在读这篇文章.
希望这可以帮助.
该问题是不是真正的语言,但你使用它的方式.
我们不使用OO功能,因为它们很花哨,但是因为我们获得时间(包括长期运行).
我可以建议您的代码审查您的代码吗?你讨论一下吗?你可以复习一下吗?我认为反馈对你的帮助远远超过阅读,或单独编写代码,你不必面对或讨论具体代码的东西.
在Mono上尝试Java或C#.
理由:
我尊重Smalltalk,并且应该知道它的概念以更好地理解OOP,但学习语言本身是不切实际的恕我直言.
虽然Java和C#可能不是"绝对纯粹"的OOP(例如它们已经结合了一些函数式编程方法),但它们本质上是基于OOP的,它们是主流的(因此具有更大的社区)并且它们更容易学习比Smalltalk恕我直言.
很多人都在暗示Smalltalk,所以我会与众不同并建议让埃菲尔.;)
学习OO原则的好语言,也有像DBC(Design By Contract)这样的好东西.
问题不在于语言.无论您使用何种语言,您仍然可以在一个类中编写所有代码,或者使用类级方法,并最终编写结构化代码.虽然纯粹的OO语言会让它变得更难,但我已经给了很多学生,他们试图将结构化编程变成Java和C#.
我的建议是查看OO编程的一些很好的例子,并看看OO如何使自己适应某些设计模式,这些模式真正展示了OO的功能,使结构编程能够做同样的事情,但代码更少,更多其他程序员可以读取.
阅读实施Smalltalk的Daniel HH Ingalls 撰写的文章 Design Principles Behind Smalltalk.它决定了OOP的真正本质.