java面试提问:什么是OOP?
概念性的东西可能大家都知道啊,但不知道面试的时候怎样回答啊,谢谢了。 展开
OOP全称Object Oriented Programming,是指面向对象程序设计,是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。
面向对象编程技术的关键性观念是它将数据及对数据的操作行为放在一起,作为一个相互依存、不可分割的整体——对象。对于相同类型的对象进行分类、抽象后,得出共同的特征而形成了类。面向对象编程就是定义这些类。
扩展资料:
OOP的优缺点:
1、OOP 的优点:使人们的编程与实际的世界更加接近,所有的对象被赋予属性和方法,结果编程就更加富有人性化。
2、OOP 的也有缺点,就 C++ 而言,由于面向更高的逻辑抽象层,使得 C++ 在实现的时候,不得不做出性能上面的牺牲,有时候甚至是致命的 。
参考资料:百度百科-OOP
OOP是面向对象编程的英文全称(Object Oriented Programming)的英文的首字母,它表示的是一种计算机编程架构。关于面试中OOP的提问可以从其核心思想封装,继承,多态三方面展开,具体如下:
1.OOP之封装,封装主要是保证组件不会以不可预期的方式改变其他组件的内部状态,而只有在那些提供了内部状态改变方法的组件中得情况下,才可以访问其内部状态。
2.抽象完一个事物后,可能在特定的条件下,其本身的状态需要改变,但是这个改变并允许其他的事物来进行,这样的改变只允许这个事物认同的操作域来进行,可以是该事物本身,也可以是它信任的其他事物。这样我们就能对我们抽象完的每个事物进行自身数据的保护。
3.OOP之继承,继承指的是从已有类得到继承信息创建新类的过程。让抽象出来的事物具有本应该具有的联系。允许在现存的组件基础上创建子类组件,这统一和增强了另外两个特性——多态性和封装性。
4.一般来说就是用类来对组件进行分组,并且还可以定义新类为现存的类的扩展,这样则可将类组织成树形或网状结构,这体现了动作的通用性。
5.OOP之多态,从定义上来说,多态指的是组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。
6.在实际应用体现为用一种解决方案来解决对一类问题,对于不同的事物解决途径和结果不同。在C++中实现多态性有三种方法,分别是:虚函数,函数重载和运算符重载。
扩展资料:
OOP相对于面向过程编程的优点:
(1)OOP关注对象和角色,也就是事物的本质。
(2)OOP把客观世界中的对象抽象成对应的类; 2)通过类构造实例; 3)通过依赖、继承、实现等形式建立对象间的通信关系。
(3)OOP易于扩展,增加或改变业务的功能,无需大幅改动改变源代码。
(4)OOP易于建模,OOP就是软件架构师在计算机高级语言中对客观世界的抽象和再现,人们可以很好地理解和建立起计算机中的抽象模型。
参考资料来源:百度百科-OOP
OOP是面向对象编程的简称,是一种计算机编程架构,OOP 的基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,达到了软件工程的三个主要目标:重用性、灵活性和扩展性。
OOP大大地降低了软件开发的难度,使编程就像搭积木一样简单,是当今电脑编程的重要手段。
扩展资料:
OOP的特征是封装、继承、多态、抽象,运用OOP时需要遵循以下原则:
1、开放封闭原则,软件实体应该扩展开放、修改封闭;
2、依赖倒置原则,摆脱面向过程编程思想中高层模块依赖于低层实现,抽象依赖于具体细节;
3、Liskov替换原则,继承思想的基础;
4、接口隔离原则,接口功能单一,避免接口污染;
5、单一职责原则,就一个类而言,应该仅有一个引起它变化的原因;
6、合成/聚合复用原则,设计模式告诉我们对象委托优于类继承,从UML的角度讲,就是关联关系优于继承关系。尽量使用合成/聚合、尽量不使用继承;
7、迪米特原则或最少知识原则,就是说一个对象应当对其他对象尽可能少的了解。
参考资料:百度百科—OOP
OOP: Object Oriented Programming,面向对象的程序设计。所谓"对象"在显式支持面向对象的语言中,一般是指类在内存中装载的实例,具有相关的成员变量和成员函数(也称为:方法)。面向对象的程序设计完全不同于传统的面向过程程序设计,它大大地降低了软件开发的难度,使编程就像搭积木一样简单,是当今电脑编程的一股势不可挡的潮流。
扩展资料:
OOP 的优点:使人们的编程与实际的世界更加接近,所有的对象被赋予属性和方法,结果编程就更加富有人性化。
· OOP 的也有缺点,就 C++ 而言,由于面向更高的逻辑抽象层,使得 C++ 在实现的时候,不得不做出性能上面的牺牲,有时候甚至是致命的 ( 所有对象的属性都经过内置多重指针的间接引用是其性能损失的主要原因之一;不过,笔者的局限性在于未使用过 VC++ 外的面向对象语言,所以不是十分肯定,哈哈,有人笑出来了… )。
在计算机速度飞速发展的今天,你可能会说,一丁点的性能牺牲没什么大不了。是的,从面向对象的角度,使的编程的结构更加清晰完整,数据更加独立和易于管理,性能的牺牲可以带来这么多的好处,没有理由不做稳赚的生意吧?
不过,在某些对速度要求极高特殊场合,例如你做的是电信的交换系统,每秒钟有超过百万的人同时进行电话交换,如果,每一个数据交换过程都是一个对象,那么总的性能损失将是天文数字!!
参考资料:百度百科-《Java 7程序设计》
OOP: Object Oriented Programming,面向对象的程序设计。所谓“对象”在显式支持面向对象的语言中,一般是指类在内存中装载的实例,具有相关的成员变量和成员函数(也称为:方法)。面向对象的程序设计完全不同于传统的面向过程程序设计,它大大地降低了软件开发的难度,使编程就像搭积木一样简单,是当今电脑编程的一股势不可挡的潮流。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。
扩展资料:
面向对象编程技术的关键性观念是它将数据及对数据的操作行为放在一起,作为一个相互依存、不可分割的整体——对象。对于相同类型的对象进行分类、抽象后,得出共同的特征而形成了类。面向对象编程就是定义这些类。类是描述相同类型的对象集合。类定义好之后将作为数据类型用于创建类的对象。程序的执行表现为一组对象之间的交互通信。对象之间通过公共接口进行通信,从而完成系统功能。类中声明的public成员组成了对象的对外公共接口。简单来说就是以功能为解决问题的中心。