【复习】软件设计师之论:面向对象思想

【复习】软件设计师之论:面向对象思想

 面向对象 = 类 + 继承 + 对象 + 消息通信

对象:是系统中用来描述客观事物的一个实体,他是构成系统的一个基本单位

对象有三要素:对象标志,属性和服务

封装:是对象的一个重要原则。

它有两层含义:

第一:对象是其全部属性和全部服务紧密结合而形成的一个不可分割的整体;

第二:对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的仪码都封装在黑盒子里面。

类:对具有相同属性和服务的一个或一组的抽象类与对象描述和具体实例的关系,一个具有的对象被称作类的一个实例。

继承和泛化:继承是面向对象方法中重要的概念,用来说明特殊类(子类)与一般类(父类)的关系,通常使用泛化来说明一般类与特殊类之间的关系,他们之间是一对多关系。

多态性与重载:多态性(即多种形式)则是一般类中定义的属性或者服务被特殊类继承后,可以具有不同的数据类型或者表现出不同的行为,通常是使用重载和改写两项结束来实现。

1.重载(专用多态)描述一个函数名称有多重不同实现方式,通常可以在编译时基于类型签名来区分各个重载函数的名称

2.覆盖(包含多态)是重载的一种特殊情况,只发生存在父类和子类这一关系中。

注:通常签名相同,内容不一样。

3.多态变量(赋值多态,强制多态)声明为一种类型,但实际上却可以包含另一种类型数值的变量。

4.泛型(模板,参数多态)它提供了一种创建通用工具的方法,可以再特定的场合将其泛化

多态:

通用的:

参数多态

包含多态

特定的:

过载多态

强制多态

消息和消息通信:

1.消息就是向对象发出的服务请求,它通常包括提供服务的对象标志,消息名,输入信息和回答新。

2.消息通信则是面向对象方法学中的一个重要原则。它与对象的封装原则密不可分,为对象提供了唯一合法的动态获取的途径。

面向对象学的优点

1.与人类习惯的思维方式一致

2.稳定性好

3.可重用性好

4.较易开发大型软件产品

5.可维护性好

在面向对象技术中,类属于是一种参数多态机制,一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与具体类型无关的那些部分,而用变元类表示与具体类型有关的那些部分。

转载于:https://www.cnblogs.com/changemax/p/10015125.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101708.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 字节、字、bit、byte的关系「建议收藏」

    字节、字、bit、byte的关系「建议收藏」字word 字节byte 位bit 字长是指字的长度1字节=8位(1byte=8bit)1字=2字节(1word=2byte)一个字节的字长是8一

    2022年8月2日
    8
  • OpenGL的glPushMatrix()和glPopMatrix()矩阵栈顶操作函数详解「建议收藏」

    OpenGL中图形绘制后,往往需要一系列的变换来达到用户的目的,而这种变换实现的原理是又通过矩阵进行操作的。opengl中的变换一般包括视图变换、模型变换、投影变换等,在每次变换后,opengl将会呈现一种新的状态(这也就是我们为什么会成其为状态机)。    有时候在经过一些变换后我们想回到原来的状态,就像我们谈恋爱一样,换来换去还是感觉初恋好,怎么办?强大的opengl就帮我们提

    2022年4月7日
    116
  • 【C语言】编写一个函数实现n^k,使用递归实现

    【C语言】编写一个函数实现n^k,使用递归实现

    2022年2月3日
    49
  • Python爬虫从入门到精通——解析库pyquery的使用「建议收藏」

    Python爬虫从入门到精通——解析库pyquery的使用「建议收藏」分类目录:《Python爬虫从入门到精通》总目录在《解析库BeautifulSoup的使用》中,我们介绍了BeautifulSoup的用法,它是一个非常强大的网页解析库,但如果你对Web有所涉及,如果你比较喜欢用CSS选择器,如果你对jQuery有所了解,那么这里有一个更适合你的解析库——pyquery。pyquery初始化像BeautifulSoup一样,初始化pyquery的时候,…

    2022年6月9日
    38
  • 严苛模式(StrictMode)

    严苛模式(StrictMode)

    2021年11月29日
    39
  • day2 javaee的入门知识「建议收藏」

    day2 javaee的入门知识「建议收藏」1、面向对象与面向过程的区别?面向过程的语言拥有封装、继承、多态的特性,使得整个代码灵活性高,比如Java,C++。容易维护,容易扩展。面向过程的语言直接跟内存打交道,性能要更好,比如java是需要跟虚拟机做交互,先编译解释成机器码。再跟操作系统打交道。大多数面向过程的语言基本都是直接编译成机器码在操作系统上进行执行。所以性能更好。但是java经过多年的发展,性能提升了很大,各位读者要记住javayyds!2、成员变量和局部变量的区别与c++不同的是java中没有全局变量的概念。成员变量:也称

    2022年7月8日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号