二、面向对象程序设计方法学

面向对象程序设计吸取了结构化程序设计的一切优点,又考虑了现实世界与面向对象解空间的映射关系,它所追求的目标是将现实世界问题的求解尽可能的简单化。

   面向对象程序设计将数据及对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理,它采用数据抽象和信息隐藏技术。它将对象及对对象的操作抽象成一种新的数据类型—类,并且考虑不同对象之间的联系和对象类的重用性。

下面我将就本人了解的一些面向对象基本概念和大家分享。希望对大家有所帮助。

一、对象的基本概念

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

面向对象系统最突出的特性就是封装性、继承性和多态性,衡量某一种程序设计语言,看它是否是面向对象的程序设计语言,主要看它是否具有以上三种特性。 像C++,C#,java等都是这样的程序设计语言。

二、类与对象

类(class)是对具有相同属性和服务的一个或一组对象的抽象定义。

类与对象是抽象与具体实例的关系,一个具体的对象被称做类的一个实例。

是否建立了丰富的类库是衡量一个面向对象程序设计语言成熟与否的一个重要标志。

对象(object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,是类的实例。

面向对象的软件系统是由对象组成的,复杂的对象是由比较简单的对象组合而成。也就是说,面向对象方法学使用对象分解取代了传统方法的功能分解。

对象的属性和方法称为这个对象的“成员”。它是构成对象的主要部分。

类可以说是对象的蓝图(blueprint)

三、对象三要素

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

对象标志:也就是对象的名字,供系统内部唯一地识别对象。

属性:也称状态或数据,用来描述对象的静态特征。在某些面向对象的程序设计语言中,属性通常被称为成员变量或简称变量。

服务:也称操作、行为或方法等,用来描述对象的动态特征。某些面向对象程序设计语言中,服务通常被称为成员函数或简称函数。

 

封装:对象的一个重要原则,目的是使对象的定义与实现分离。它有两层含义:第一,对象是其全部属性和全部服务紧密结合而形成的一个不可分割的整体;第二,对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码都被封装在黑盒子里面。使用一个对象的时候,只需知道它向外界提供的接口形式,无须知道它的数据结构细节和实现操作的算法。从外面看不见,更不可能从外面直接修改对象的私有属性。

l          处于私有段(private)的changemark,这是不向外公开的功能,只供对象自己使用。

l          处于保护段(protected)的getmark,这是只向外界宣布的功能,只对其派生类对象提供服务。

l          处于公有段(public)的getname和getmajor,这是向所有外界公开的功能,它可以响应外界对象的请求。

对象(object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,是类的实例。

面向对象的软件系统是由对象组成的,复杂的对象是由比较简单的对象组合而成。也就是说,面向对象方法学使用对象分解取代了传统方法的功能分解。                                                                                                                                                                                                                       

   四、继承(inheritance)和多态(polymorphism)性  

继承:是面向对象程序设计语言不同于其它语言的主要特点,是类之间共享属性和操作的机制。其定义为:特殊类(或称子类、派生类)的对象拥有其一般类(或称父类、基类)的全部属性与服务,称做特殊类对一般类的继承(分为单继承和多继承)。在面向对象的方法学中,继承是提高软件开发效率的重要原因之一。

多态性:指对象在收到消息时,要给予相应,对象收到同一个消息后可能产生完全不同的结果。

总体上分为:编译时的多态和运行时的多态。

参数多态(使用函数重载来实现)是应用最广泛的多态,是最纯的多态。

多态性不仅增加了面向对象软件系统的灵活性,进一步减少了信息冗余,而且显著提高了软件的可重用性和可扩充性。

在定义函数重载时,函数名字相同,但函数所带的参数的个数或类型必须有所区别,否则就会出现二义性。

习惯称被继承的类为“父类”,而继承的类称为“子类”。

在面向对象系统中除了函数可以重载外,运算符也可以重载。java也是这样。

注意:编译时的多态一般由函数重载来实现,而运行时的多态由虚函数来使用。

面向对象程序设计方法学相关推荐

  1. Python程序设计(13)-----程序设计方法学

    复习之前学过的内容 Python程序设计(6)-----基本数据类型 Python程序设计(7)-----字符串类型及其操作 Python程序设计(8)-----程序的控制结构 Python程序设计( ...

  2. c语言做小学生测验程序,[转载]程序设计方法学课程设计--小学生算术四则运算测试程序(C)...

    背景 伴随着人类社会的进步,人们的计算工具也在不断的变化,从远古时期的结绳计数,到算筹,算盘,以及近代的机械计算机.计算尺,直至今天我们广泛运用的电子计算机.计算工具的每一次进步,都导致科学技术发生深 ...

  3. 测验8: 程序设计方法学 (第8周)

    测验8: 程序设计方法学 (第8周) 文章目录 测验8: 程序设计方法学 (第8周) 单选题 程序题 这是python123官网上联合MOOC的Python程序设计(第10期)答案 单选题 os.pa ...

  4. 电大java语言与面向对象程序设计基础_6406Java语言与面向对象程序设计基础A卷...

    6406Java语言与面向对象程序设计基础A卷 试卷编号:6406 座位号 浙江广播电视大学2006年春季学期开放教育专科期末考试 <Java语言与面向对象程序设计基础>试题 2006年7 ...

  5. Python:程序设计方法学、体育竞技分析

    一.基础知识 二.程序设计方法学 import random def printIntro():print("这个程序模拟两个选手A和B的某种竞技比赛")print("程 ...

  6. C++ 面向对象程序三大特性之 继承

    目录 继承的概念 继承的定义及使用 继承方式和访问权限 基类和派生类对象的赋值转换 继承中的各成员的作用域 派生类的默认成员函数 构造函数 拷贝构造 赋值运算符重载函数 析构函数 继承与友元 继承与静 ...

  7. java面向对象程序练习_5本面向经验丰富的程序员的高级Java书籍

    java面向对象程序练习 Sometimes back I wrote an article for Best Core Java Books for beginners, today I am sh ...

  8. 程序设计方法学-python

    程序设计方法学 文章目录 程序设计方法学 实例:体育竞技分析 python程序设计思维 计算思维与程序设计 基本的程序设计模式 步骤 OS库的基本使用 介绍 OS库路径操OS作 OS库进程管理 OS库 ...

  9. Python——程序设计方法学

    程序设计方法学 8.1 实例13:体育竞技分析 8.1.1"体育竞技分析"问题分析--高手过招,胜负只在毫厘之间 需求:毫厘是多少?如何科学分析体育竞技比赛? 输入:球员的水平 输 ...

  10. 面向对象程序有哪些优点呢?

    转自: 面向对象程序有哪些优点呢? 面向对象简介: 面向对象(Object Oriented)是软件开发方法,一种编程范式.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界 ...

最新文章

  1. java 查看文件属性_java File类获取文件属性详解
  2. ajax项目设置,jQuery_ajax预处理_和后置处理;项目中ajax自动设置_token_请求头,_接口响应code的统一处理...
  3. python 求和并排序_Python算法教程第三章知识点:求和式、递归式、侏儒排序法和并归排序法...
  4. Sharepoint 修改密码
  5. 【BZOJ4128】Matrix,拔山盖世的矩阵乘法+随机化
  6. saltsack之数据系统(三)
  7. SylixOS启动读取配置文件
  8. php获取用户 地区 、ip地址
  9. TCTrack: Temporal Contexts for Aerial Tracking
  10. 互联网版本(支持手机APP)云天售后服务软件上线
  11. 【免费】抖音去水印教程保存本地相册方法
  12. 思杰桌面服务器虚拟化,虚拟化入门之认识思杰桌面虚拟化XenDesktop
  13. Tik Tok跨境:不会英语可以做TikTok吗?
  14. 新注册的邮箱如何群发邮件
  15. 小米捧红氮化镓快充?看完此文让你秒懂氮化镓!
  16. 治疗“实火”引起的急性口腔溃疡及清新口气的方法
  17. java 返回ro,错误retrofit rxjava优雅的处理服务器返回异常、错误
  18. 一个合格的中级前端工程师需要掌握的技能笔记(中)
  19. python 删除sheet_Python操作Excel删除一个Sheet
  20. 树莓派远程桌面连接-使用Windows自带远程桌面连接工具

热门文章

  1. Java程序设计案例教程
  2. 贪心算法(java实现)
  3. EDA技术实用教程 | 复习五 | 端口模式
  4. JAVA 入门教程 2
  5. 开发板与虚拟机tftp服务器安装与使用
  6. access control延迟锁门_求教RFID ACCESS CONTROL门禁机设置方法
  7. MySQL 5.7.27详细下载安装配置教程
  8. 2014.01.25 JFinal 使用经验积累
  9. 一套C#图书管理系统源码 书籍借还登记统计系统源码
  10. 王道考研操作系统笔记(第五章)附:王道考研408所有PPT和思维导图