精华内容
下载资源
问答
  • 面向对象程序设计方法

    千次阅读 2018-09-30 20:33:42
    面向对象方法学方程式=对象+类+继承+传递消息实现通讯 ...3、实例:是由某个特定类所描述的一个具体的对象 4、消息:要求某对象执行某个操作的规格说明;  三部分: 接收消息对象;消息名;0个或对个变...

    面向对象方法学方程式=对象+类+继承+传递消息实现通讯

    (一) 类、对象、封装、消息、继承、多态等基本概念

    1、类:对具有相同状态和形同操作的一组相似对象的定义;

    2、对象:对具有相同状态的一组操作的集合,对状态和操作的封装;

    3、实例:是由某个特定类所描述的一个具体的对象

    4、消息:要求某对象执行某个操作的规格说明;

        三部分:        接收消息对象;消息名;0个或对个变元

    5、方法和属性

        方法:对象执行的操作,即勒种定义的服务;

        属性:类中所定义数据,对客观世界实体具体性质的抽象

    6、继承:子类自动共享基类中定义的属性和方法的机制

    7、多态性:在类等级不同层次可以共享一个方法名,不同层次每个类按各自需要实现这个方法

    8、重载:

        (1)函数重载:在同一个作用域内,参数特征不同的函数可以使用相同名字

                优点:调用者不需记住功能雷同函数名,方便用户程序员易于阅读和理解

        (2)运算重载:同一运算符可以施加于不同类型操作数上面

    (二) 统一建模语言 UML 的基础知识

    1、建模必要性:对复杂问题表达出来,把本质抽象出来

        好处:捕获商业流程、促进沟通、管理复杂性、定义软件架构、促进软件复用

    2、发展

    3、构成

    4、UML视图

    用例视图:定义了系统的需求,因此约束了描述了系统设计和构造的某些方面的所有其他视图;定义了系统的外部行为是最终用户、分析员和测试员所关心的;

    设计视图:描述了支持用例视图规定的功能需求的逻辑结构。它由程序组件的定义,主要是类,类所包含的数据、类的行为以及类之间交互的说明定义

    实现视图:描述构造系统的物理组件,这些组件包括如何执行文件代码库和数据库等内容。这个视图包含的信息与配置管理和系统集成这类活动有关。

    进程视图:进行视图包括形成并发和同步机制的进程和线程

    部署视图:部署视图描述物理组件如何在系统运行的实际环境(如计算机网络)中分布

    5、静态建模--用例图、类图、对象图

    (1)用例图--901软件工程-UML用例图

    (2)类图--901软件工程-UML类图

    (3)对象图--901软件工程--UNL对象图

    6、动态建模--顺序图、协作图、活动图(实质从状态图转换来)

    (1)顺序图:描述对象间交互

    对象用矩形框表示,框内对象名

    矩形框下的竖线代表对象的生命线

    对象生命线上的细长矩形表示对象被激活

    对象间通信用对象间水平线表示,箭头形状表明消息类型(消息类型在 ---》标题(4))

    (2)协作图:(可由顺序图转换而来)描述相互协作对象间交互关系和连接关系

    顺序图着重表现交互时间顺序

    协作图着重表现交互对象间的静态链接消息

    协作图显示对象间处理的分布

    (3)活动图:描述为完成某一个用例需要做的活动以及这些活动的执行顺序

    状态图着重描述对象状态的变化,以及触发状态变化的事件

    活动图着重表现描述各种活动的执行顺序

    粗短线:(同步杆)一如多出分劈;多入单出为结合

    泳道图:对象活动的责任泳道把活动分成若干组,把组指定给对象,对象履行该组活动。

    (4)消息:对象间互通消息

    ①简单消息:没有描述信息的细节

    ②同步消息:调用者发出消息后等待消息返回再继续执行

    ③异步消息:调用者发出消息后不等待消息返回就继续执行

    ④返回消息:代表从过程调用的返回

        过程控制:可省,隐含每个调用有配对返回

        非过程空指针流:如异步,不可省略

    7、物理框架机制--构件图、配置图(部署图)

    (1)构件图

    展现了一组构件的类型,内部结构和他们之间的依赖关系

    构件:代表系统一物理实现块,一般作为独立文件存在

    构件种类:部署构件;工作产品构件;执行构件

        部署构件:构成一可执行系统的必要构件;如:java虚拟机

        工作产品构件:开发过程的产物,包括源代码文件及数据文件。构件不直接参与可执行系统,用来产生可执行系统的中间工作产品

        执行构件:构成一可执行系统必须要的构件。如:动态链接数据库EXE文件,cokba构件,.net构件

    (2)配置图

    描述了系统硬件和软件物理配置情况和系统体系结构

    显示系统运行时刻的结构

    包含了结点和连接两个元素

    展开全文
  • 面向对象程序设计的基本概念

    千次阅读 2016-07-04 15:31:41
    用来描述客观事物的实体,是构成系统的一个基本单位,由一组属性以及作用在这组属性的操作构成。特性:标识符(区别其他对象)、属性(状态)和操作(行为)。属性(Attribute):与对象关联的数据,描述对象静态特性...

    概述

    概念

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

    对象

    对象(Object):具有责任的实体。用来描述客观事物的实体,是构成系统的一个基本单位,由一组属性以及作用在这组属性的操作构成。

    特性:标识符(区别其他对象)、属性(状态)和操作(行为)。

    属性(Attribute):与对象关联的数据,描述对象静态特性;

    操作(Operation):与对象关联的程序,描述对象动态特性;

    类(Class):

    概念

    具有相同属性和操作的一组对象的抽象,它为属于该类的全部对象提供了统一的抽象描述。

    区别

    类是静态的,类的存在、语义和关系在程序执行前就已经定义好了。

    对象是动态的,对象在程序执行时可以被创建和删除。

    层次
    这里写图片描述


    属性
    这里写图片描述


    方法
    这里写图片描述


    消息

    这里写图片描述


    封装

    这里写图片描述

    封装的作用

    使对象形成两个部分:接口(可见)和实现(不可见),将对象所声明的功能(行为)与内部实现(细节)分离

    “封装”的作用是什么?

    • 数据的安全性:保护对象,避免用户误用。
    • 模块的独立性:保护客户端(调用程序),其实现过程的改变不会影响到相应客户端的改变。
    • 易开发、易维护性:隐藏复杂性,降低了软件系统开发难度;各模块独立组件修改方便,重用性好。

    泛化与继承

    泛化(generalization)/继承(Inheritance) 关系是类元的一般描述和具体描述之间的关系,具体描述建立在一般描述的基础之上,并对其进行了扩展。

    继承(Inheritance):子类( Subclass)可自动拥有父类/超类(SuperClass)的全部属性和操作。

    • 表示两个类之间是“is a”关系。
    • 继承使两个以上的类共享相同的属性和/或相同方法。
    • 继承的各个类间形成层次结构。
    • 继承提高了复用性,使多态成为了可能。

    多态性(Polymorphism)

    多态性(Polymorphism):在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。

    java中有重写(静态),重载(动态)

    抽象类(abstract class)与接口(Interface)

    抽象类

    • 抽象类中至少有一个方法被定义为“abstract”类型的。
    • “abstract”类型的方法:只有方法定义,没有方法的具体实现。
    • 抽象类的类名在模型中一般为“斜体”,或

    接口

    接口(Interface):描述了一个类的一组外部可用的操作(方法)集合

    体现了“接口与实现的分离”的思想,即“信息隐藏”。

    对象之间的联系

    继承、实现、依赖、关联、聚合、组合的联系与区别

    分别介绍这几种关系:

    继承
    指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识

    空心箭头-实线
    这里写图片描述

    实现

    指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识

    空心箭头-虚线
    这里写图片描述

    依赖

    可以简单的理解,就是一个类A的方法中使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;

    箭头-虚线
    这里写图片描述

    关联

    他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;

    箭头-实线
    这里写图片描述

    聚合

    聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

    空心菱形-实线-箭头
    这里写图片描述

    组合

    组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束(大脑的实例化在person对象中创建,与person对象生命周期相同);比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

    实心菱形-实线-箭头
    这里写图片描述

    对于继承、实现这两种关系没多少疑问,他们体现的是一种类与类、或者类与接口间的纵向关系;其他的四者关系则体现的是类与类、或者类与接口间的引用、横向关系,是比较难区分的,有很多事物间的关系要想准备定位是很难的,前面也提到,这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;

    但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖;

    面向对象分析和设计

    面向对象分析(Object Oriented Analysis, OOA)
    分析:强调的是对问题和需求的调查研究,而不是解决方案

    面向对象分析过程中,强调的是在问题领域内发现和描述对象

    面向对象设计(Object Oriented Design, OOD)
    设计:强调的是满足需求的概念上的解决方案(在软件方面和硬件方面),而不是其实现。

    面向对象设计过程中,强调的是定义软件对象以及它们如何协作以实现需求。

    区别
    有价值的分析和设计可以概括为:做正确的事(分析)和正确地做事(设计)

    展开全文
  • 一个基于tornado的web应用程序通常由一个或多个RequestHandler的子类和一个Application对象构成。Application用于将不同的请求路由到相应的RequestHandler. 然后 我们在main函数里启动web服务。 一个简单的"hello ...

    一个基于tornado的web应用程序通常由一个或多个RequestHandler的子类和一个Application对象构成。Application用于将不同的请求路由到相应的RequestHandler.

    然后 我们在main函数里启动web服务。


    一个简单的"hello world"的例子如下所示:

    import tornado.ioloop
    import tornado.web
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("Hello, world")
    
    def make_app():
        return tornado.web.Application([
            (r"/", MainHandler),
        ])
    
    if __name__ == "__main__":
        app = make_app()
        app.listen(8888)
        tornado.ioloop.IOLoop.current().start()

    Application对象:

    Application对象负责进行全局的配置,包括一个用于将requests映射到handler的路由表。

    这个路由表是一个由URLSpec对象(或者元组)组成的列表,其中的每一项包含了至少一个正则表达式和一个RequestHandler类。

    按照匹配的先后顺序,第一个匹配的RequestHandler类将会被使用。

    如果正则表达式包含捕获模式组:如下面的正则表达式包含2个捕获模式组(.*)

     /([0-9]{4})/([a-z-]+)/

    那么url路径中捕获到的匹配路径将会作为参数传递给RequestHandler类的HTTP方法。

    如果一个字典作为URLSpec的第3个参数被传入,它将会作为初始化参数被传递给RequestHandler.initialize()方法

    最后,URLSpec可以拥有一个名字,可以通过name=xxx的方式指定,可以通过

    RequestHandler.reverse_url来方法这个名字。


    举例:

    class MainHandler(RequestHandler):
        def get(self):
            self.write('<a href="%s">link to story 1</a>' %
                       self.reverse_url("story", "1"))
    
    class StoryHandler(RequestHandler):
        def initialize(self, db):
            self.db = db
    
        def get(self, story_id):
            self.write("this is story %s" % story_id)
    
    app = Application([
        url(r"/", MainHandler),
        url(r"/story/([0-9]+)", StoryHandler, dict(db=db), name="story")
        ])
    在上面的例子中,根URL"/"被映射到MainHandler;然后URL模式”/story/紧跟着一个数字”被映射到StoryHandler,由于包含了一个捕获组,这个数字

    被作为参数传递给了get方法,这个URLSpec还有一个字典参数,通常可以在这里传递数据库对象;

    最后指定了一个名称参数。


    Application的构造函数可以传递许多关键字参数来定制应用程序的功能或者开启关闭某些特性。

    可以通过查看Application.settings来了解有哪些配置选项。


    
    
    展开全文
  • 面向对象程序设计语言和面向过程程序设计语言的区别由哪些? 面向对象的特点是:封装,继承,多态,其中多态又分为重载和重写,面向对象的编程思想更接近现实的事物 面向对象的优点:  1.编程更加容易,因为面向...

    面向对象程序设计语言和面向过程程序设计语言的区别由哪些?

    面向对象的特点是:封装,继承,多态,其中多态又分为重载和重写,面向对象的编程思想更接近现实的事物

    面向对象的优点:
        1.编程更加容易,因为面向对象更接近于现实,所以你可以从现实的东西出发,进行适当的抽象
        2.在软件工程上,面向对向可以使工程更加模块化,实现更低的耦合和更高的内聚
        3.在设计模式上(似乎只有面向对象才涉及到设计模式),面向对象更好的实现开闭原则,也使代码更容易阅读
    相对而言,面向过程的程序设计是面向对象程序设计的基础,面向对象的程序设计里面一定会有面向过程的程序片断

    面向对象的编程(ObjectOrientedProgramming,oop面向对象程序设计)是一种计算机编程架构,oop的一条基本原则
    是计算机程序是由单个能够起到子程序作用的单元或者对象组合而成的。oop达到了软件工程的三个主要目标:重用性,
    灵活性和扩展性,为了实现整个运算,每个对象都能狗接收信息,处理信息和向其他对象发送信息。oop主要由以下的概
    念和组件

    面向过程就是分析出解决问题所以需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用
    就可以了,面向对象是把构成问题的事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个
    事物在整个解决问题的步骤中的行为。
    举例:例如五子棋,面向过程的设计思想就是首先分析问题的步骤:
    1.开始游戏 2.黑子先走 3.绘制画面 4.判断输赢 5.轮到白子 6.绘制画面 7.判断输赢 8返回步骤2 9.输出最后结果
    把上面的每个步骤分别用函数实现,问题就解决了

    而面向对象的设计则是从另外的思路来解决问题,整个五子棋可以分为:
    1.黑白双方这两方的行为是一模一样的
    2.棋盘系统,负责绘制画面
    3.规则系统,负责判断诸如犯规,输赢等

    展开全文
  • C++面向对象程序设计 面向对象编程

    万次阅读 2018-09-12 22:39:50
    1.1 面向过程的编程风格与面向对象的编程风格 C语言是面向过程语言,也称为命令型语言,面向过程通常采用自顶向下设计,问题复杂时不断运用自顶向下设计(即函数分解法)直到容易处理。自顶向下设计优点是直观有...
  • 面向对象和面向过程的程序构成。  了解:面向对象的软件开发。  重点、难点: 面向对象程序设计的方法及特点;类的声明的对象的定义;类成员函数的性质、定义及存贮方式。 、面向对象程序设计方法概述 
  • 面向对象程序设计思想的魅力

    千次阅读 2014-09-13 00:30:21
    说说面向对象程序设计 在学习面向程序之前,我先学了C语言,也就是面向过程的程序设计。学完C后的第一个感觉只能编写...那时候C语言的课程设计写一个五子棋,一个把数据关系变相表达出来的一个程序,那时候用了两个星
  • 面向对象程序设计概念

    千次阅读 2006-09-29 10:34:00
    传统的程序设计思维方式是基于“算法+数据结构=程序”的模式,在这类程序中,数据和施加于数据的操作(算法过程)总是分离的,所有程序均有一组被动的数据和一组能动的过程所组成。通常把这类程序设计称为面向过程的...
  • 、结构化程序设计 传统的程序设计方法可以归结为“程序=算法+数据结构”,将程序定义为处理数据的系列过程。这种设计方法的着眼点是面向过程的,特点是数据与程序分离,即数据与数据处理分离。 结构化程序设计...
  • 谭浩强《C++面向对象程序设计》知识点总结

    千次阅读 多人点赞 2018-06-16 22:05:53
    1 C++初步知识 1.1 C++的输入输出 ...输入:采用标准输入流对象istream和提取运算符cin&...输出:采用标准输出流对象...给功能相似的函数建立一个统一的模板 要求:函数的参数个数和原来的要相同 格式:
  • 面向功能的程序设计方法、结构化程序设计方法、面向数据流的处理方式与结构化分析(Structrued Analysis,即SA)、结构化编程... 面向对象程序分析(OOA)、面向对象程序设计(OOD)、面向对象程序开发(OOP)
  • 面向对象程序设计的基本概念 1. 对象 对象:面向对象程序设计的基本单元。... 是一个抽象的概念,而对象一个类中某个具体实体。对象是类的一个实例(Instance)。 3. 消息 消息: 对象之间是相互联系的
  • 面向对象-搞定她-搞定程序

    万次阅读 2020-12-16 08:38:00
    1. 面向对象思想面向对象种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物,使用对象的关系来描述事...
  • 面向对象程序设计是种新的程序设计范型。主要特征是:程序=对象+消息 面向对象程序设计的基本元素是对象,面向对象程序的主要结构特点是: 1. 程序一般由类的定义和类的使用两部分组成; ...
  • 面向对象程序设计方法学

    千次阅读 2009-03-08 23:52:00
     面向对象程序设计将数据及对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理,它采用数据抽象和信息隐藏技术。它将对象及对对象的操作抽象成一种新的数据类型—类,并且考虑不同对象之间的联系和对象...
  • 一个应用程序域进一步被细分成多个上下文边界,这些边界用来分组目的相似的.NET对象。使用上下文的概念,CLR便能够确保恰当地控制那些带特殊运行时要求的对象。传统的进程用来描述一组资源和程序运行所必需的内存...
  • Servlet入门总结及第一个Servlet程序

    万次阅读 多人点赞 2015-04-20 17:26:08
    八 Servlet第一个程序 一、了解Servlet的概念  Servlet 定义: Servlet 是基于 Java 技术的 Web 组件,由容器管理并产生动态的内容。 Servlet 引擎作为 WEB 服务器的扩展提供支持 Servlet 的功能。 Servlet 与...
  • C++面向对象程序设计--期末知识总结

    千次阅读 多人点赞 2019-06-22 17:55:06
    本次学习涵盖了八章节的知识点,认识了面向对象的基本操作,会...类:为描述一组对象在结构和行为上的共性,可以创建抽象数据类型,对一组具有相同结构和行为的对象的抽象描述,大致分为属性、操作。 一、指针和引...
  • 面向对象程序设计原则
  • 对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。 JavaScript这里的对象和Java语言中的类实例的对象不同,所以这里创建对象和Java等语言也不相同。 创建对象 正如Java一样子类继承于Object类一样,...
  • VC++中的面向对象程序设计概念

    千次阅读 2006-07-02 15:46:00
    传统的程序设计思维方式是基于“算法+数据结构=程序”的模式,在这类程序中,数据和施加于数据的操作(算法过程)总是分离的,所有程序均有一组被动的数据和一组能动的过程所组成。通常把这类程序设计称为面向过程的...
  • 之前一直用JAVA和Android做开发,最近在维护一个老的项目,是用VB开发的,代码超过十个年头了,接触了一段时间。对面向过程和面向对象都有所涉及,在这里这个小结(有些是在网上收集的) 自己的理解: 面向过程是...
  • 第一章——一个简单的iOS应用程序

    千次阅读 2017-08-29 09:17:31
    一个简单的iOS应用程序在本章中,您将要编写一个名为Quiz的iOS应用程序。 此应用程序将显示一个问题,然后在用户点击按钮时显示答案。 点击另一个按钮将向用户显示一个新问题
  • MATLAB的一个FFT程序

    千次阅读 2013-05-24 16:59:41
    程序实现是这样:   程序流程如下图:     首先进行位逆转,其实很简单,就是把二进制的位逆转过来: Matlab的位逆转程序: function a=bitreverse(Nbit, num) %Nbit = 4; %num = 8; a = 0; b = bitshift(1,...
  • Modelsim 第一个仿真程序 四位加法器

    万次阅读 2019-04-02 14:04:46
    4位全加器 //4位全加器 module a4(sum,cout,a,b,cin); input [3:0] a,b; input cin; output cout;...output [3:0] sum;...4位全加器的仿真程序 //4位全加器的仿真程序 `timescale 1ns/1ns `include "My...
  • 面向对象的编程语言中的类和对象

    千次阅读 2018-01-15 17:25:05
    面向对象程序设计是将人们认识世界过程中普遍采用的“分类”思维方法应用到程序设计中,“类”提供了为应用程序操纵的实体进行建模的便利机制——将具有相同属性及相同行为的一组对象封装为类,也就是将方法和数据...
  • 注:这只是我的面向对象技术的篇作业,随便贴的,大家不要介意:) 从程序设计语言和程序设计范型的演化思考面向对象技术 摘 要面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,在这篇论文中...
  • 1、对象和类概念对象:任何一个对象都应该具备两个要素:属性、行为。在C++中每个对象都有数据(体现了‘属性’)和函数(用来对数据进行操作,以实现某些功能)两部分组成。类:具有共性的实体的抽象。类是对象的...
  • 类的概念:类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 182,829
精华内容 73,131
关键字:

一组对象构成一个程序