问题描述
- OOP面向对象编程的本质是什么
-
OOP即面向对象编程的基础是类或者说是对象,我想问一下,这些类或者对象是所有操作系统预留的接口吗?这些对象在操作系统层次中的运行机理是什么?
解决方案
OOP的本质是提供编程语言更高的抽象层次,而将诸如类型匹配,判断方法是否可以执行,代码注入,用分支语句改变行为等等这些低层次的编码由编译器去实现,简化编程复杂度,减少错误。
OOP的实现机制有很多。比如早期的C++语言,通过将代码展开得到等价的C语言,然后用C语言编译器编译。即便现在的C++语言,也有这样的影子,比如this指针、虚拟表等等。而另外一些语言,比如Java或者C#,它们在虚拟机层面就支持面向对象,虚拟机通过JIT再转换成非面向对象的机器代码执行,而编译器的输出结果仍然保留了对象信息。还有的语言,在解释器层面实现的面向对象,比如Ruby、Python、Javascript。
解决方案二:
类是现实生活中抽象事物的集合,一般都是你自己根据需要来定义的,接口也是你自己来设计的。当然,你也可以调用系统早就写好的类,我们根据类来创建实例对像,实例对像就能调用这个接口了,这里应该说成员函数(C++中)或方法(JAVA中)
实例对像要看是在什么语言下了,如果是C++,有堆区、栈区、静态区/全局区、字符串常量区、二进制代码区。在不同的区创建出的实例对像,它们的生存
周期就不一样,可视范围也不样。但如果都是同一个类的实例对像,那么它们的接口是一样的,只不过都是单独的了。
解决方案三:
类是抽象的,在语言层面,是为了让你更好的开发而出现的。
时间: 2024-11-05 12:26:57