oop - 初学者 OOP 问题

标签 oop programming-languages comparison

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

首先,OOP语言编译器实际生成的代码和过程语言编译器有什么不同吗?我的意思是,OOP 只是关于您如何编写代码,还是实际编译的代码与程序不同?更准确地说,像 C 这样的过程语言基本上生成的代码就像用 ASM 编写的一样。但是 OOP 代码有什么不同吗?

其次,如果 OOP 代码在其机器代码形式中使用不同的方法,它是比过程式更慢还是更快?谢谢。

最佳答案

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

对于在 Java 或 C# 等虚拟机中运行的语言,这是部分正确的。在这里,VM 可能支持某些特定于对象的功能。

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

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

关于oop - 初学者 OOP 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3576695/

相关文章:

关于 count_if : expected primary-expression before 的 C++ 错误

hash - 哈希在编程中是如何工作的?

C++ 模板函数特化?

php - 在 PHP 中使用对象还是静态函数更好?

php - 我应该以 OOP 方式使用 PHP PDO 吗?

c# - 为什么我的 WeakReference 示例不起作用?

c# - 主要方法代码完全在 try/catch : Is it bad practice? 中

python - 相当于 try/except/finally 语句

scala - Buildr vs Gradle,优缺点?

c++ - 为什么比较 2 个字符串没有给出预期的结果?