初学OOP问题

B.G*_*ill 16 oop comparison programming-languages

我只想问两个关于OOP的快速问题.

首先,OOP语言编译器实际生成的代码是否与过程语言编译器有什么不同?我的意思是,OOP只是关于你如何编写代码,还是实际编译的代码与程序不同?像C这样的更精确的过程语言基本上会产生类似于ASM编写的代码.但是OOP代码有什么不同吗?

第二,如果OOP代码在其机器代码形式中使用不同的方法,它是否比程序更慢或更快?谢谢.

Sjo*_*erd 7

首先,没有.对于编译为本机机器代码的语言,这当然是正确的.毕竟,程序集和机器代码没有对象的概念.

对于在Java或C#等虚拟机中运行的语言,这部分属实.这里,VM可以支持一些特定于对象的特征.

可以用非面向对象的语言编写OOP,反之亦然.OOP主要用于程序员,它所强加的限制(例如,你不能从另一个类访问私有方法)由编译器检查但不在输出中传递.

其次,OOP或程序没有性能差异.只是代码和数据位于代码中的不同位置.