面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是 90 年代软件开发
方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的
范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理
结构、CAD 技术、人工智能等领域。
面向对象的特征
(1)对象唯一性。
每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个
生命期中,它的标识都不改变,不同的对象不能有相同的标识。
(2)分类性。
分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就
是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任
何类的划分都是主观的,但必须与具体的应用有关。
(3)继承性。
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定
义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经
存在的类所定义的内容作为自己的内容,并加入若干新的内容。
继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没
有的。
在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。
在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织
与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。
采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够
共享,提高了软件的重用性。
(4)多态性(多形性)
多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。
不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
多态性允许每个对象以适合自身的方式去响应共同的消息。
多态性增强了软件的灵活性和重用性。

你对面向对象思想的理解?相关推荐

  1. 简述对面向对象思想的理解

    面向对象思想得由来是,起初我们的需求单一或者特别简单时,可以一步一步的去进行操作,并且效率也不是很低,可是随着需求进一步的提高,所需要实现的功能也就越多,我们发现需要面对的每一个步骤很麻烦,所以就开始 ...

  2. java面向对象思想如何理解

     Java 的核心是面向对象编程 . 所有的 java 程序都是面向对象的. 以前总听老师说 c 语言是面向过程的, c++ 和 java 是面向对象的,这些糊涂老师却从来不说明何为面向过程,何为 ...

  3. 谈谈java面向对象思想_对于Java面向对象思想的理解

    在Java中,除了8种基本数据类型.其他皆为对象! 面向对象主要有 三个基本特征:封装,继承,多态. 封装 主要概念是指:隐藏对象的属性和实现细节,仅对外暴露公共的访问方式.封装是面向对象最基本的特征 ...

  4. 面向对象基础--面向对象思想(理解)

    一.了解面向对象 1.概念基本理解:1).一个个体可以看做是一个对象,例如:人这个个体: 2).有共同属性的一类作为一个个体,例如:学生.白领.农民工: 3).结构体是用户自定义的数据类型,可以定义不 ...

  5. Java中对于面向对象思想的理解

    1. ① 与C语言面向过程不同的是,C语言中函数是主体,如果需要修改数据需要函数来进行修改,所以来说函数在C语言中是很重要的,基本上对于数据的操作都是这样的,但是有的时候不太方便,而Java语言面向对 ...

  6. 每天一道面试题-谈谈对面向对象思想的理解

    这个问题,通常会让很多人有点不知所措,感觉我一直在编码,但是说到思想很难去阐述. 下面,我说说自己的想法, 首先,谈谈"面向过程"vs"面向对象" 我觉得这两者 ...

  7. Java面向对象思想OOP理解 东海陈光剑 剑魔书仙读书录

    /****/ package iSword;import java.util.Scanner;/*** @author root**///*****************************主类 ...

  8. 面向对象思想设计原则及常见设计模式

    面向对象思想设计原则 •在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 •单一职责原则 •开闭原则 •里氏替换原则 •依赖注入原则 •接口分离原则 • ...

  9. 从面向对象设计思想出发理解Spring AOP编程

    都说AOP是OOP(面向对象)的继承与延续,我觉得理解AOP还是得从OOP出发,经历从暴露问题到解决问题的过程. 目录 一. 面向对象设计思想(OOP) (1)概述 1. POP编程 2. OOP的优 ...

最新文章

  1. 到底为什么你我都要了解社会工程学
  2. 47. Permutations II
  3. 非线程安全的HashMap 和 线程安全的ConcurrentHashMap
  4. 解耦HTML、CSS和JavaScript
  5. linux的安装nmom命令,Linux下块设备查看命令lsblk详解
  6. 点云赋值 PointCloudT::Ptr 运行时崩溃
  7. 如何测试数据库表空间不足场景
  8. SQL中的条件语句case-when-then-else(就像C中的switch case语句)
  9. TS Annotation
  10. MyEclipse10下开发第一个Hibernate小程序
  11. 深入浅出 数据库索引
  12. 再测Golang JSON类库
  13. python爬虫实践
  14. C#中MessageBox用法大全(附效果图)
  15. Deepin(2) 设置屏幕分辨率
  16. 迁移学习Transfer Learning
  17. scrapy爬虫项目的建立
  18. 片刻之后我们就找到了计算机教室英语翻译,全新版大学英语综合教程2课文原文翻译...
  19. 文献阅读—GAIN:Missing Data Imputation using Generative Adversarial Nets
  20. element table表头设置换行

热门文章

  1. 静态类型语言和动态类型语言
  2. 简单理解vuex原理
  3. Linux究竟值多少钱? 1
  4. C语言之玩转指针(进阶)
  5. 电子信息、通信、电类专业将会遇到的面试题大全!精!!!看了让人大吃一惊......
  6. mac下安装gedit
  7. Andorid 任意界面悬浮窗,实现悬浮窗如此简单
  8. 揭秘LOL背后的IT基础设施丨关键角色“调度”
  9. 查看计算机存储数据,小编教你怎么查电脑的内存【图文】
  10. 高精度干涉仪->皮米分辨率位移干涉测量仪