`
m635674608
  • 浏览: 4934008 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

面向对象的三个基本元素,五个基本原则

    博客分类:
  • java
 
阅读更多

三个基本元素:

1. 封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
2. 继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 
3. 多态: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。


五个基本原则:
单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。
开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。
Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。
依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。
接口隔离原则(Interface-Segregation Principle):使用多个小的专门的接口,而不要使用一个大的总接口。

分享到:
评论

相关推荐

    Java面向对象程序设计杨晓燕面向对象基本原则和模式.pptx

    接口的UML表示 第5页/共30页 Java面向对象程序设计杨晓燕面向对象基本原则和模式全文共30页,当前为第5页。 依赖关系:虚线+箭头 第6页/共30页 Java面向对象程序设计杨晓燕面向对象基本原则和模式全文共30页,当前...

    【05-面向对象(下)】

    自动装箱就是把一个基本类型的变量直接赋给对应的包装类变量,自动拆箱 则与之相反。 •包装类还可以实现基本类型变量和字符串之间的转换,除了Character之外的所有包装类都提供了一个 parseXxx(String s)静态...

    软件工程-理论与实践(许家珆)习题答案

    (2) 模拟和分析需求 需求分析和模拟又包含三个层次的工作。首先是需求建模。需求模型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。需求概念模型的要求包括实现的独立性:不模拟数据...

    design-pattern-java.pdf

    基础知识 基础知识设计模式概述 从招式与内功谈起——设计模式概述(一) 从招式与内功谈起——设计模式概述(二) 从招式与内功谈起——设计模式概述(三) 面向对象设计原则 面向对象设计原则之单一职责原则 面向...

    软件工程知识点

    单元测试也以“详细设计说明书”为依据,用于检验每个基本模块在功能、算法与数据结构上是否符合设计要求。 4.系统集成测试 所谓系统集成也就是根据概要设计中的软件结构,把经过测试的模块,按照某种选定的集成...

    达内java培训目录

    掌握面向对象的基本原则以及在编程实践中的意义;掌握Java面向对象编程基本实现原理。 实训项目一:Tetris项目开发 第二阶段(以T-DMS V1项目贯穿) JDK核心API 语言核心包、异常处理、常用工具包、集合框架。 ...

    自动化测试面试题总结.docx

    1,面向对象的三个特征 2,重写和重载 3,比较sping,sping mvc 4,进程和线程的区别 5,java三层架构 6,处理异常 九、python 1,字符串反转的7种方法 2,new 和 _init_ 3,不使用中间变量交换两个变量的值 4,python四大...

    计算机二级C语言考试题预测

    (62) 栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是(D) A. ABCED B. DBCEA C. CDABE D. DCBEA (63) 线性表的顺序存储结构和线性表的链式存储结构分别是(B) A. 顺序...

    程序设计教程 陈家骏等编著

    6.1.3 面向对象程序设计的基本内容 203 6.2 类的定义 204 6.2.1 数据成员 205 6.2.2 成员函数 206 6.2.3 成员的访问控制:信息隐藏 207 6.3 对象 210 6.3.1 对象的创建和标识 210 6.3.2 对象的操作 211 6.3.3 this...

    计算机二级公共基础知识

    例如,在一维数组[21,46,24,99,57,77,86]中,查找数据元素99,首先从第1个元素21开始进行比较,比较结果与要查找的数据不相等,接着与第2个元素46进行比较,以此类推,当进行到与第4个元素比较时,它们相等,...

    编写高质量代码-Web前端开发修炼之道.azw3

    4.4 模块化CSS——在CSS中引入面向对象编程思想 4.4.1 如何划分模块——单一职责 4.4.2 CSS的命名——命名空间的概念 4.4.3 挂多个class还是新建class——多用组合,少用继承 4.4.4 如何处理上下margin 4.5 低...

    Java设计模式 版本2

    Java设计模式,目录:前言,UML建模技术,深入浅出UML类图,从招式与内功谈起——设计模式概述,面向对象设计原则,工厂三兄弟之简单工厂模式,工厂三兄弟之工厂方法模式,工厂三兄弟之抽象工厂模式,确保对象的唯一...

    传智播客扫地僧视频讲义源码

    本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...

    语言程序设计课后习题答案

    面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,由一组属性和一组行为构成。 面向对象的方法将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体--...

    二十三种设计模式【PDF版】

    你向别人介绍你是某单位,你是单位中的一个元素,别人和你做买卖,相当于 和单位做买卖。文章中还对 Jive再进行了剖析。 设计模式之 Decorator(装饰器) Decorator 是个油漆工,给你的东东的外表刷上美丽的颜色. ...

    全国计算机等级二级公共基础知识课件

    (10) 数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。 答:数据存储 (11) 设一棵完全二*树共有500个结点,则在该二*树中有______个叶子结点。 答:250 (12) 在...

    二级C语言公共基础知识

    (10) 数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。 答:数据存储 (11) 设一棵完全二*树共有500个结点,则在该二*树中有______个叶子结点。 答:250 (12) 在...

    计算机图形学pdf(可copy内容版)

    4.1.6.2 面向对象程序设计 4.1.6.3 绘图子程序和主程序 4.1.6.4 编程绘图方法 4.2 图形的数据结构 4.2.1 图形信息的分类 4.2.2 图形数据结构 4.2.3 计算机对数据的管理—数据文件 4.2.4 图形数据的存储状态 4.2.5 ...

    PHP和MySQL Web开发第4版pdf以及源码

    3.10.2 对数组的每一个元素应用任何函数:array_walk() 3.10.3 统计数组元素个数:count()、sizeof()和array_count_values() 3.10.4 将数组转换成标量变量:extract() 3.11 进一步学习 3.12 下一章 第4章 字符...

Global site tag (gtag.js) - Google Analytics