操作系统-OOP面向对象编程的本质是什么

问题描述

OOP面向对象编程的本质是什么

OOP即面向对象编程的基础是类或者说是对象,我想问一下,这些类或者对象是所有操作系统预留的接口吗?这些对象在操作系统层次中的运行机理是什么?

解决方案

OOP的本质是提供编程语言更高的抽象层次,而将诸如类型匹配,判断方法是否可以执行,代码注入,用分支语句改变行为等等这些低层次的编码由编译器去实现,简化编程复杂度,减少错误。
OOP的实现机制有很多。比如早期的C++语言,通过将代码展开得到等价的C语言,然后用C语言编译器编译。即便现在的C++语言,也有这样的影子,比如this指针、虚拟表等等。而另外一些语言,比如Java或者C#,它们在虚拟机层面就支持面向对象,虚拟机通过JIT再转换成非面向对象的机器代码执行,而编译器的输出结果仍然保留了对象信息。还有的语言,在解释器层面实现的面向对象,比如Ruby、Python、Javascript。

解决方案二:

类是现实生活中抽象事物的集合,一般都是你自己根据需要来定义的,接口也是你自己来设计的。当然,你也可以调用系统早就写好的类,我们根据类来创建实例对像,实例对像就能调用这个接口了,这里应该说成员函数(C++中)或方法(JAVA中)
实例对像要看是在什么语言下了,如果是C++,有堆区、栈区、静态区/全局区、字符串常量区、二进制代码区。在不同的区创建出的实例对像,它们的生存
周期就不一样,可视范围也不样。但如果都是同一个类的实例对像,那么它们的接口是一样的,只不过都是单独的了。

解决方案三:

类是抽象的,在语言层面,是为了让你更好的开发而出现的。

时间: 2024-11-05 12:26:57

操作系统-OOP面向对象编程的本质是什么的相关文章

yui3的AOP(面向切面编程)和OOP(面向对象编程)

  这篇文章主要介绍了yui3的AOP(面向切面编程)和OOP(面向对象编程),需要的朋友可以参考下 首先请把手放胸前成沉思状:我上了生活,还是被生活上了自己? 没想出答案把,恩,可以读下文了.从语义角度讲,同一事物的不同表述可以反映人的主观视角的不同,从哲学角度将,世界观影响方法论,我们看事物的角度不同,有时会得出截然相悖的结论,从而会影响我们的做事方式和行为准则,现实生活如此,在丰富多彩的编程语言中更是如此,编程模式充满了对现实世界的各种模拟,包括是面向过程,面向对象,还有面向切面.我们大概

用C实现OOP面向对象编程(1)

如摘要所说,C语言不支持OOP(面向对象的编程).并这不意味着我们就不能对C进行面向对象的开发,只是过程要复杂许多.原来以C++的许多工作,在C语言中需我们手动去完成. 博主将与大家一起研究一下如下用C语言实现面象对象的编程. 面向对象的三大特性:封装.继承.多态 我们要达到的目的如下: Animal是动物,有两个方法:Eat()吃,Breed()繁衍. Bird与Mammal都是Animal,Mammal是哺乳动物. Penguin是企鹅,企鹅是Bird,企鹅不会飞. Swallow是燕子,是

yui3的AOP(面向切面编程)和OOP(面向对象编程)_YUI.Ext相关

首先请把手放胸前成沉思状:我上了生活,还是被生活上了自己? 没想出答案把,恩,可以读下文了.从语义角度讲,同一事物的不同表述可以反映人的主观视角的不同,从哲学角度将,世界观影响方法论,我们看事物的角度不同,有时会得出截然相悖的结论,从而会影响我们的做事方式和行为准则,现实生活如此,在丰富多彩的编程语言中更是如此,编程模式充满了对现实世界的各种模拟,包括是面向过程,面向对象,还有面向切面.我们大概已经非常熟悉面向过程和面向对象,切面的英文是Aspects(有时译作方面,我感觉用切面更能贴切的表达A

Javascript oop设计模式 面向对象编程简单实例介绍_javascript技巧

Javascript oop设计模式 面向对象编程 最初我们写js代码的时候是这么写 function checkName(){ //验证姓名 } function checkEmail(){ //验证邮箱 } function checkPassword(){ //验证密码 } 这种方式会造成全局变量的严重污染,再过渡到 var checkObject = { checkName : function(){}; checkEmail: function(){}; checkPassword:

VB.NET中的面向对象编程特征

编程|对象 Visual Basic 7也被称作VB.NET,具备了面向对象(OOP)编程语言的所有特征.对于VB编程人员来说,面向对象的概念和面向对象编程方式都不陌生.       如果问一个面向对象程序设计高手什么是面向对象程序设计语言?他可能会说出一大堆诸如类.接口.消息隐匿.封装.继承.多态性这样的名词,这些名词听起来都很酷,不是吗?但面向对象编程并非通过一两天的学习或听一次课就能掌握的.要真正地掌握面向对   象程序设计,不但需要掌握一定的理论知识,同时还要进行一些实际的编程练习.本文

VB.NET面向对象编程特征

  Visual Basic 7也被称作VB.NET,具备了面向对象(OOP)编程语言的所有特征.对于VB编程人员来说,面向对象的概念和面向对象编程方式都不陌生. 如果问一个面向对象程序设计高手什么是面向对象程序设计语言?他可能会说出一大堆诸如类.接口.消息隐匿.封装.继承.多态性这样的名词,这些名词听起来都很酷,不是吗?但面向对象编程并非通过一两天的学习或听一次课就能掌握的.要真正地掌握面向对象程序设计,不但需要掌握一定的理论知识,同时还要进行一些实际的编程练习.本文探讨了在VB.NET中运用

php面向对象编程学习笔记

(OOP)来开发.面向对象开发相对于面向过程有很多优点: 维护简单   模块化是面向对象编程中的一个特征.实体被表示为类和同一名字空间中具有相同功能的类,我们可以在名字空间中添加一个类而不会影响该名字空间的其他成员. 可扩充性   面向对象编程从本质上支持扩充性.如果有一个具有某种功能的类,就可以很快地扩充这个类,创建一个具有扩充的功能的类. 代码重用   由于功能是被封装在类中的,并且类是作为一个独立实体而存在的,提供一个类库就非常简单了. 它比较适合多人合作来开发项目,所以现在很多大中型网站

我的WCF之旅(7):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的继承

当今的IT领域,SOA已经成为了一个非常时髦的词,对SOA风靡的程度已经让很多人对SOA,对面向服务产生误解.其中很大一部分人甚至认为面向服务将是面向对象的终结,现在的面向对象将会被面向服务完全代替.在开始本Blog之前,我先来谈谈我对SOA和OO的区别,首先申明,这只是一家之言,欢迎大家批评指正,并且关于SO的谈论不是本Blog的主题,只是主题的引子,在这里只是简单讨论而已 . OO和SO之间具有共同的部分,在运用的领域上存在交集,只有在基于他们交集层面上谈论谁是谁非才有意义,下面是我对SO和

《JavaScript面向对象编程指南》——1.6 OOP概述

1.6 OOP概述 JavaScript面向对象编程指南 如果您在面向对象程序设计方面是一个新手,或者您不能确定自己是否真的理解了上面这些概念,请不必太担心.以后我们还会通过一些代码来为您具体分析它们.尽管这些概念说起来好像很复杂.很高级,但一旦进入真正的实践,事情往往就要简单得多. 话虽如此,但还是先让我们再来复习一下这些概念吧(见表1-1).