博客
关于我
(1.4)面向对象概述之面向对象的基本概念和面向对象的思考方式
阅读量:394 次
发布时间:2019-03-05

本文共 2236 字,大约阅读时间需要 7 分钟。

文章目录

1.“面向对象”思想的基本概念

  • 类 Class
  • 对象 Object

2.类与对象

  • 类和对象,这两者之间的关系

    有点像“先有鸡” 还是“先有蛋”的关系一样,有一点纠缠
    从他们的定义就可以看出来:
    用对象来定义类、用类来产生对象!
    我们在学习本课程的时候,可以忽略这个问题
    有的时候 在表达概念的时候,对象 与 类可以通用!
    在设计软件系统的时候,对象是不存在的,
    在软系统运行时, 在内存中创建对象。类不存在于物理世界

  • A class is a description of a set of objects that share the same attributes, operations,

    relationships, and semantics “共享相同属性、操作、方法、关系或者行为的一组对象的描述符”
    -Rumbaugh

  • An object is an Instance created from a class. 一个对象是根据一个类创建的一个实例

    An instance’s behaviour and information structure is defined in the class.
    类,定义了实例的行为和信息结构
    Its current state (values of instance variables) is determined by operations performed on it.
    对象的当前状态(实例变量的取值)取决于作用于该对象的操作

3.类的构成、对象的构成

在这里插入图片描述

  • 注意: 概念之间的互用
    属性Attribute == 数据Data == 状态state == 信息information
    操作operation == 方法Method ==行为behaviour = = 职责responsibility
    对象object=实例instance

4.软件功能是如何完成的?

  • 定义了对象群体的逻辑结构,包括属性和操作
    系统运行时,类作为产生对象的模板,在物理层面是不存
    在的
  • 对象
    系统运行时必须为每一个需要的对象分配内存、保存数据
    对象存在于物理层面,每个对象都有自己的数据空间(内存)
    所有的对象共享同一块代码空间
  • 消息
    对象之间的一种交流手段
    就像我们日常工作中的各种交流手段
  • 所有相关对象之间相互协作完成软件功能

5.面向对象的思考方式

  • 软件工程是与人打交道的、是为人提供服务的

    问题是什么?
    谁碰到了问题?
    问题的本质是什么?
    问题该如何解决?

  • 对于想成为问题解决者的人来说,入门的关键是“把单一思维模式切换成多重思维模式”

  • “观察到的一切都是对象” – 这就是面向对象思考方式

  • 软件系统是由多个对象组成,对象间通过消息相互交流、共同协作,以完成整个系统的功能

  • 定义

    在对世界/系统 进行 观察/建模的时候,把它们看成是由一系列相互交流、互为影响的对象集(a set ofobjects)
    有两点含义:
    (1) 世界是由相互作用的对象组成的
    (2)描述与构建由对象组成的系统

  • 软件开发常规的两种思维方式:面向对象、面向过程

    eg:流水生产线(面向过程)与一场篮球赛(面向对象)
    在这里插入图片描述

  • C语言是一种面向过程的思维方式

    程序的运行“一切尽在掌握中”:从main()函数的逐条语句开始执行、调用了子程序就必须一层层返回,最终又返回main函数;
    系统需要完成的功能,分配到各个子函数,由main函数统一调度

  • 比较

    面向过程侧重于考虑方法的编写(哪个方法做什么事,不考虑所涉及的数据在哪里)
    面向对象则致力于将数据和方法先做一个封装(分配一个对象做事,先考所需要的数据是否和它在一起)

  • 比较: 通信

    (1)过程化解决方法通过信道传递数据,服务器端需要有专门的工具对接受的数据进行处理
    (2)面向对象解决方法通过信道传递对象(数据+对数据的处理方法)
    如, Web浏览器,接收到的Java Applet,就是一个对象。浏览器只要运行Applet里面的代码,就可以显示网页的内容

  • 【误解】

    对象包装(object wrap) : 把任意一段过程化的代码堆砌在一起

  • 主要概念

    面向对象分析 OO analysis,
    面向对象设计 OO design,
    设计模式 design patterns,
    统一建模语言 the Unified Modeling Language (UML),
    面向对象编程 OO programming,
    various OO programming languages,
    (1)C++/java/C#/.NET etc
    (2)and many other topics related to OO programming

  • 最重要的是:

    以面向对象的思维方式去思考要解决的问题 how youthink in OO ways

6.面向对象的核心特征

  • Following concepts are basics
    Object / Class
    Method / Message
    Encapsulation封装
    Inheritance
    Interface / Implement接口
    Polymorphism,多态
    Composition / aggregation组合/聚合
    Abstraction
  • Advance OO concepts
    OO principle
    Design Pattern

转载地址:http://yryzz.baihongyu.com/

你可能感兴趣的文章
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
ngrok内网穿透可以实现资源共享吗?快解析更加简洁
查看>>
ngrok内网穿透可以实现资源共享吗?快解析更加简洁
查看>>
NHibernate动态添加表
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
Nhibernate的第一个实例
查看>>
NHibernate示例
查看>>
nid修改oracle11gR2数据库名
查看>>
NIFI1.21.0/NIFI1.22.0/NIFI1.24.0/NIFI1.26.0_2024-06-11最新版本安装_采用HTTP方式_搭建集群_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_插入时如果目标表中已存在该数据则自动改为更新数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0058
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0_Postgresql和Mysql同时指定库_指定多表_全量同步到Mysql数据库以及Hbase数据库中---大数据之Nifi工作笔记0060
查看>>
NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
查看>>