java面试提问-什么是OOP-

网上有关“java面试提问:什么是OOP?”话题很是火热,小编也是针对java面试提问:什么是OOP?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题 ,希望能够帮助到您。

OOP全称Object Oriented Programming,是指面向对象程序设计,是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成 。

面向对象编程技术的关键性观念是它将数据及对数据的操作行为放在一起 ,作为一个相互依存、不可分割的整体——对象。对于相同类型的对象进行分类、抽象后,得出共同的特征而形成了类。面向对象编程就是定义这些类 。

扩展资料:

OOP的优缺点:

1 、OOP 的优点:使人们的编程与实际的世界更加接近,所有的对象被赋予属性和方法 ,结果编程就更加富有人性化。

2、OOP 的也有缺点,就 C++ 而言,由于面向更高的逻辑抽象层 ,使得 C++ 在实现的时候,不得不做出性能上面的牺牲,有时候甚至是致命的 。

参考资料:

百度百科-OOP

面向对象有什么特点和好处

Java语言特点Java是一种简单的 ,面向对象的 ,分布式的,解释型的,健壮安全的 ,结构中立的,可移植的,性能优异、多线程的动态语言 。Java主要特性1 、Java语言是简单的。Java语言的语法与C语言和C++语言很接近 ,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载 、多继承、自动的强制类型转换 。特别地 ,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。2、Java语言是一个面向对象的。Java语言提供类 、接口和继承等原语 ,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承 ,并支持类与接口之间的实现机制(关键字为implements) 。Java语言全面支持动态绑定 ,而C++ 语言只对虚函数使用动态绑定 。总之,Java语言是一个纯的面向对象程序设计语言。 3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net) ,它提供了用于网络应用编程的类库,包括URL、URLConnection 、Socket 、 ServerSocket等 。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 4、Java语言是健壮的。Java的强类型机制、异常处理 、废料的自动收集等是Java程序健壮性的重要保证 。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。 5、Java语言是安全的 。Java通常被用在网络环境中,为此 ,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查 ,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。 6 、Java语言是体系结构中立的 。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。7、Java语言是可移植的 。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度 。Java系统本身也具有很强的可移植性 ,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。 8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式 , 然后可以在实现这个Java平台的任何系统中运行 。在运行时 ,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。 9 、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的 。事实上 ,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建 。通常有两种方法来创建线程:其一 ,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法 ,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法 ,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制 。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。 11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境 。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类 。这也有利于软件的升级。另外 ,Java中的类有一个运行时刻的表示 ,能进行运行时刻的类型检查。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用 。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库 。Java的八大基本数据类型及其包装类原始类型 包装类 原始类型所占的字节数short Short 2个字节 int Integer 4个字节long Long 8个字节 float Float 4个字节double Double 8个字节byte Byte 1个字节char Character 2个字节 boolean Boolean 这个试编译环境而定

面向对象程序设计的特点和优点

面向对象(Object Oriented,OO)是当前计算机界关心的重点 ,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统 、交互式界面、应用结构、应用平台 、分布式系统 、网络管理结构、CAD技术、人工智能等领域 。

面向对象的特征

(1)对象唯一性。

每个对象都有自身唯一的标识,通过这种标识 ,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识 。

(2)分类性。

分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象 ,它反映了与应用有关的重要性质,而忽略其他一些无关内容 。任何类的划分都是主观的,但必须与具体的应用有关 。

(3)继承性。

继承性是子类自动共享父类数据结构和方法的机制 ,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容 ,并加入若干新的内容 。

继承性是面向对象程序设计语言不同于其它语言的最重要的特点 ,是其他语言所没有的。

在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。

在类层次中 ,子类继承了多个父类的数据结构和方法,则称为多重继承 。

在软件开发中,类的继承性使所建立的软件具有开放性 、可扩充性 ,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。

采用继承性 ,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性 。

(4)多态性(多形性)

多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象 ,收到同一消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息 。

多态性增强了软件的灵活性和重用性。

.

.

使用面向对象思想进行开发有以下优点:

1 、易维护

采用面向对象思想设计的结构,可读性高 ,由于继承的存在 ,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。

2、质量高

在设计时 ,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量 。

3、效率高

在软件开发时,根据设计的需要对现实世界的事物进行抽象 ,产生类 。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。

4 、易扩展

由于继承、封装、多态的特性 ,自然设计出高内聚 、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。

面向对象的基本概念

(1)对象 。

对象是人们要进行研究的任何事物 ,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

(2)对象的状态和行为。

对象具有状态 ,一个对象用数据值来描述它的状态 。

对象还有操作 ,用于改变对象的状态,对象及其操作就是对象的行为。

对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中

(3)类。

具有相同或相似性质的对象的抽象就是类 。因此 ,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。

类具有属性 ,它是对象的状态的抽象,用数据结构来描述类的属性。

类具有操作,它是对象的行为的抽象 ,用操作名和实现该操作的方法来描述 。

(4)类的结构。

在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系 ,整体--部分结构关系 。

①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is a ”关系 。

②整体——部分结构称为组装结构 ,它们之间的关系是一种“与”关系 ,或者是“has a”关系。

(5)消息和方法。

对象之间进行通信的结构叫做消息 。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名 、发送给该对象的消息名(即对象名 、方法名)。一般还要对参数加以说明 ,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名 。

类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体

面向对象的特征

(1)对象唯一性。

每个对象都有自身唯一的标识 ,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变 ,不同的对象不能有相同的标识 。

(2)分类性。

分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容 。任何类的划分都是主观的 ,但必须与具体的应用有关。

(3)继承性。

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系 。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行 ,把这个已经存在的类所定义的内容作为自己的内容 ,并加入若干新的内容 。

继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。

在类层次中,子类只继承一个父类的数据结构和方法 ,则称为单重继承。

在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承 。

在软件开发中 ,类的继承性使所建立的软件具有开放性 、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量 ,增加了代码的可重性。

采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享 ,提高了软件的重用性 。

(4)多态性(多形性)

多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息 。

多态性增强了软件的灵活性和重用性。

三 、面向对象的要素

(1)抽象。

抽象是指强调实体的本质、内在的属性 。在系统开发中 ,抽象指的是在决定如何实现对象之前的对象的意义和行为。使用抽象可以尽可能避免过早考虑一些细节。

类实现了对象的数据(即状态)和行为的抽象 。

(2)封装性(信息隐藏) 。

封装性是保证软件部件具有优良的模块性的基础。

面向对象的类是封装良好的模块 ,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。

对象是封装的最基本单位 。封装防止了程序相互依赖性而带来的变动影响。面向对象的封装比传统语言的封装更为清晰、更为有力。

(3)共享性

面向对象技术在不同级别上促进了共享

同一类中的共享 。同一类中的对象有着相同数据结构。这些对象之间是结构 、行为特征的共享关系。

在同一应用中共享 。在同一应用的类层次结构中,存在继承关系的各相似子类中 ,存在数据结构和行为的继承,使各相似子类共享共同的结构和行为。使用继承来实现代码的共享,这也是面向对象的主要优点之一。

在不同应用中共享 。面向对象不仅允许在同一应用中共享信息 ,而且为未来目标的可重用设计准备了条件。通过类库这种机制和结构来实现不同应用中的信息共享。

4.强调对象结构而不是程序结构

关于“java面试提问:什么是OOP? ”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!


来源:http://ninzhua.cn/ninzhua/235.html 来源:http://m.ninzhua.cn/ninzhua/231.html 来源:http://ninzhua.cn/ninzhua/237.html 来源:http://news.ninzhua.cn/ninzhua/240.html
(3)

猜你喜欢

发表回复

本站作者才能评论

评论列表(3条)

  • 喧丹小姐姐的头像
    喧丹小姐姐 2026年04月29日

    我是索罗斯的签约作者“喧丹小姐姐”

  • 喧丹小姐姐
    喧丹小姐姐 2026年04月29日

    本文概览:网上有关“java面试提问:什么是OOP?”话题很是火热,小编也是针对java面试提问:什么是OOP?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望...

  • 喧丹小姐姐
    用户042906 2026年04月29日

    文章不错《java面试提问-什么是OOP-》内容很有帮助

联系我们:

邮件:索罗斯@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信