什么是面向对象?

面向对象是一种思想,世间万物都可以看做一个对象,这里只讨论面向对象编程(OOP),

Java 是一个支持并发、基于类和面向对象的计算机编程语言。

面向对象软件开发具有以下优点:

  • 代码开发模块化,更易维护和修改。
  • 代码复用性强。
  • 增强代码的可靠性和灵活性。
  • 增加代码的可读性。

面向对象的特征?

四点:封装继承多态抽象

1)封装

封装,给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。

在 Java 当中,有 4 种修饰符: defaultpublicprivate 和 protected 。

每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。

下面列出了使用封装的一些好处:

  • 通过隐藏对象的属性来保护对象内部的状态。
  • 提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。
  • 禁止对象之间的不良交互提高模块化。

2)继承

继承,给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。

3)多态

多态,是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作,可以应用到其他类型的值上面。

4)抽象

抽象,是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类。

Java 支持创建只暴露接口而不包含方法实现的抽象的类。这种抽象技术的主要目的是把类的行为和实现细节分离开。

面向对象和面向过程的区别?

  • 面向过程

    • 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源。比如,单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是最重要的因素。
    • 缺点:没有面向对象易维护、易复用、易扩展。
  • 面向对象
    • 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
    • 缺点:性能比面向过程低。

什么是面向对象?面向对象的特征?面向对象和面向过程的区别?相关推荐

  1. C++ 面向对象与面向过程的区别与联系

    转自:https://blog.csdn.net/jerry11112/article/details/79027834 前言: 如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是 ...

  2. java面向对象与面向过程的区别

    面向对象与面向过程的区别 面向过程与面向对象,只是一种思维方式的划分   面向过程 面向对象 区别 以分步骤的方式解决问题. 用方法组织代码. 以分类的方式解决问题. 用类组织代码. 共同点 细节上用 ...

  3. Java面向对象和面向过程的区别

    面向对象,Obeject Oriented,是一种编程术语.面向对象是当今软件开发方法的主流方法之一,他是把数据以及对数据的操作放在一起,作为一个相互依存的整体,就是我们所说的对象.对同类对象抽象出其 ...

  4. 面向对象和面向过程的区别

    面向对象&面向过程 什么是面向过程? 自上而下顺序执行,逐步求精:             其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构:             各模块之 ...

  5. 面向对象 和 面向过程 的区别

    一.面向对象与面向过程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为 ...

  6. python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...

    面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...

  7. python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...

    P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...

  8. 面向对象和面向过程_程序员给你解释:面向对象和面向过程的区别,到底是怎么回事?...

    今天下午在一个组的项目回顾会议上,这个同事讲了自己用DDD思想对三个模块的重构.把之前在Service层的一些业务逻辑下沉到了领域层里,由之而引起的讨论. 部门经理:"其实你的业务逻辑总体并 ...

  9. 面向对象与面向过程的区别与联系

    面向对象与面向过程的区别与联系 一.区别 面向过程强调的是功能行为,以函数为最小单位,考虑怎么做. 面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做. 面向过程的分析 ...

最新文章

  1. SiteMapPath基本用法
  2. android开发常用的设计模式,android开发设计模式之——单例模式详解
  3. vim 居中光标所在行(转载)
  4. 技术宝典 | 基于标准 WebRTC 低延迟直播的开源实践
  5. 光伏发展路线图将发布 促产业优胜劣汰
  6. php面向对象封装mysql_PHP mysqli 扩展库(面向对象/数据库操作封装/事务控制/预编译)...
  7. 重新配对_Apple Watch配对失败的解决办法
  8. 生信技能树——GEO芯片数据的合并
  9. 9106w android7,三星note4 SM-N9106W原厂刷机包4.4.4/5.0.1rom线刷包Root驱动
  10. KVASER新手入门的常见十一个问题
  11. PPT学习整理(四)表格
  12. chromium浏览器定制 | 随机canvas画布
  13. 深度残差网络+自适应参数化ReLU激活函数:调参记录2
  14. Discuz修改导读设置,显示更多热帖和精华帖
  15. git 报错解决方法:Your branch is ahead of ‘origin/dev‘ by 65 commits.
  16. Mac 安装目前最新版本的 macOS Big Sur
  17. 软连接和硬连接的区别
  18. matlab升幂降幂排列,升幂排列与降幂排列
  19. s4 android4.4.2,三星Galaxy S4(GT-I9500)开始Android 4.4.2升级
  20. Chrome安装Hackbar插件

热门文章

  1. 【sudo错误】xxx is not in the sudoers file.This incident will be reported解决
  2. 台式计算机虚拟内存怎么设置,教你怎么设置电脑的虚拟内存
  3. 以DA方式通过opcdaauto.dll访问opc服务器异步操作异常0x80040200问题
  4. 5G时代IDC数据中心经历变革,分布式云存储服务器将独占鳌头
  5. decode函数的作用
  6. postman里面的mockserver使用方法
  7. 给HttpClient添加Socks代理
  8. 江苏2020高中计算机学业水平,2020江苏高中学业水平测试时间安排表
  9. 操作系统期末复习-第一章:操作系统概论
  10. FreeMaker一篇通