我只想问两个关于 OOP 的快速问题。
首先,OOP语言编译器实际生成的代码和过程语言编译器有什么不同吗?我的意思是,OOP 只是关于您如何编写代码,还是实际编译的代码与程序不同?更准确地说,像 C 这样的过程语言基本上生成的代码就像用 ASM 编写的一样。但是 OOP 代码有什么不同吗?
其次,如果 OOP 代码在其机器代码形式中使用不同的方法,它是比过程式更慢还是更快?谢谢。
最佳答案
首先,没有。对于编译为本地机器码的语言,这当然是正确的。毕竟,汇编和机器代码没有对象的概念。
对于在 Java 或 C# 等虚拟机中运行的语言,这是部分正确的。在这里,VM 可能支持某些特定于对象的功能。
可以用非面向对象的语言编写 OOP,反之亦然。 OOP 主要对程序员有用,它施加的限制(例如,您不能从另一个类访问私有(private)方法)由编译器检查,但不会在输出中传递。
其次,OOP 或程序没有性能差异。只是代码和数据在代码中的位置不同而已。
关于oop - 初学者 OOP 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3576695/