精华内容
下载资源
问答
  • 对象专业化的特点是什么
    千次阅读
    2021-08-30 12:04:12

    面向对象程序设计的基本特点包括:抽象、封装、继承、多态。

    抽象

    抽象是指对具体问题或对象进行概括,抽出其公共性质并加以描述的过程。一般情况抽象分为数据抽象和行为抽象,其中数据抽象是指一个对象区别于另一个对象的特征,行为抽象是指某类对象的共同特征。

    封装

    封装是指将抽象得到的数据和行为相结合,隐藏对象属性和实现细节且仅对外提供公共访问方式的过程。

    继承

    继承是指通过代码复用在保持原有类特性的基础上对子类进行具体说明的过程,通俗来说继承就是精简重复代码的手段。

    多态

    多态是指一段程序能够处理多种类型对象的能力,函数重载就是实现多态的一种手段。在 C++ 语言中多态可分为强制多态、重载多态、类型参数化多态和包含多态。

    更多相关内容
  • 面向对象方法学与结构方法学的异同 面向对象方法与结构方法都是软件开发过程中的方法。在传统的软件开发过程中多采用结构技术完成软件开发的一系列工作,但这种方法并不适应发型软件产品的开发,而随着硬件...

    面向对象方法学与结构化方法学的异同

    面向对象方法与结构化方法都是软件开发过程中的方法。在传统的软件开发过程中多采用结构化技术完成软件开发的一系列工作,但这种方法并不适应发型软件产品的开发,而随着硬件发展,对于大型软件产品的需求又逐步提高,于是面向对象方法就应运而生。面向对象方法在上世纪八十年代中期开始被人们所关注的,而到了九十年代,面向对象方法学已经成为开发大型软件的首选范型。面向对象方法学的极大推广在目前并没有完全取代传统方法学说明了面向对象方法学目前也有缺陷需要进一步提高。那么面向对象方法学和结构化方法学之间的异同点有哪些呢,笔者认为二者不同点主要有以下几个方面:

    一、开发思想方面

    结构化方法开发的背景是在上世纪六十年代末提出软件危机之后,为了应对软件危机,软件开发的先辈们模仿当时比较成熟的工程化生产而提出一种方法。而这种方法也确实减轻或者说缓解了软件危机。结构化方法学的思想是面向过程,自上而下、逐步地分解问题,把一个大问题分解成多个小问题,小问题再分解成多个更小的问题,直到保证底层的问题足够简单,容易解决。

    面向对象方法学在开始,是编程语言而被引入的。而把对象作为编程的实体最早是上世纪六十年代由Simula 67语言引入思维。在结构化方法学提出几年之后,上世纪八十年代面向对象方法学逐渐走上历史的舞台,并在之后乃至现在大放异彩。面向对象方法学的思想是面向对象,以对象为中心,把数据封装在对象内部成为对象的属性,把面向过程的函数转为对象的行为方法,把对象抽象成为类,用以描述和设计、开发软件系统。

    二、基本概念方面

    结构化方法学又被称生命周期方法学或传统方法学。软件从设计者诞生开发想法起始,到没有人用、被废弃结束,称为软件的生命周期。传统的软件开发方法中,软件的生存周期分为三个大的阶段,即软件定义阶段,开发阶段,维护阶段。详细又可以分为问题定义、可行性分析、需求分析、系统设计、系统实现、后期维护等阶段。

    面向对象方法学是一种把面向对象程序设计语言的思想应用于软件开发过程,指导开发过程的方法。面向对象方法学由以下三部分面向对象分析、面向对象设计、面向对象程序设计组成。面向对象开发是按照人的逻辑概念,思维方式去解决问题,使软件开发时的代码重用性和可靠性大大提高。也使软件更容易被人理解,从而提高软件后期运行易维护性。

    三、开发过程方面

    结构化开发分为以下五个阶段

    1、系统规划阶段

    系统规划阶段的内容主要为明确软件的发展规划,确定用户对软件需求,并制定软件开发的计划。

    2、系统分析阶段

    系统分析阶段的内容有解析软件所对应的工作任务,工作任务中的数据和数据流图,软件的功能所需要的技术支持和选择。

    3、系统设计阶段

    系统设计阶段的工作有设计系统总体的结构,相关硬件设施的建设,相关环境的建立与进一步确定和数据库、数据结构设计等。

    4、系统实施阶段

    系统实施阶段的内容为按照上衣阶段的成果,协调技术人员开始编程同时对软件编程开发人员展开培训,测试等相关任务。

    5、系统运行阶段

    系统运行阶段的工作包括以下三个部分即对软件的运行管理,用户评价反馈,后台数据监省察。在软件运行时,一定会出现一些问题,这是也一定需要对软件进行修改,维护和调整,又时甚至会出现影响比较大的问题,如用户需求发生重大改变,相关技术革新,例如网络系统的更新换代,平台的升级更新,虽然这些问题可能出现的时间会比较晚,但也要即使监管并进行相关软件功能或者模块的升级。

    面相对象开发分为以下四个阶段

    1、面向对象分析阶段(OOA)

    这一阶段的工作主要有需求分析以及建立相关需求模型。具体来说就是建立软件中需要的相关的完整的对象,包括这些对象应具有的属性和相关行为。

    2、面向对象设计阶段(OOD)

    这个阶段的主要任务就是将上一阶段得到的需求转化为有技术能力实现的,成本符合预算的并且能够达到用户需求的软件实现方案。具体呢就是确定软件的高层架构,确定需要的类以及对外接口和实现算法等。

    3、面向对象编程阶段(OOP)

    此阶段的工作内容就是实现上一阶段的设计结果,并在编程的过程中修正出现的设计不到位的部分,实现预计的各项功能。

    4、面向对象测试阶段(OOT)

    面向对象测试阶段的主要工作任务就是测试软件各项功能是否存在问题,各项性能如容错性,稳定性,安全性等各项性能,以让软件不断完善。

    四、优劣对比的方面

    结构化方法开发

    优点

    1、传统方法学吧软件的大生命周期分成了许多小的阶段,每一个小阶段又可以分为其他多个不同的阶段,知道每个阶段的任务足够简单,实现相对独立,这样在开发时的分工合作就会比较简单,这样面对一些相同软件便可以流水线式快速高效开发。

    2、在传统方法学软件生命周期每一个阶段都会细细划分,这样也便于科学的管理开发进度使开发工作可以科学条理的开展,而且由于传统方法学中有着非常严格的审查制度,只有审查合格之后才可以进行下一阶段的开发工作。这可以在一定程度上保证软件的质量及其可维护性。而且值得肯定的是这种开发方法由于使用时间较长使其管理层面和技术层面都比较成熟,所以在一些简单的软件开发中,它的效率很高,甚至在当代一些软件开发仍然或多或少地使用传统方法学进行开发。

    缺点

    1、由于传统方法学的开发只能串行开发,前面的工作如果没有做好,就会给后面的工作带来非常大的麻烦,所以它的生产效率总体来说会比较低。

    2、由于其面向过程的局限性,软件的重用性非常差,程序冗余比较严重

    3、因为软件代码冗余比较多,这就会给后期的开发带来许多困难,这就使得软件的可维护性很低,由此带来的软件容错性、稳定性也比较低。

    4.开发出的软件无法很好地满足用户需求。由于用户一般是非专业人员,其所使用的语言逻辑,描述都可能有误差,这就导致呢软件在满足用户需求上效果不佳。

    面向对象方法开发

    优点

    1、面向对象方法学的开发逻辑和人的逻辑思维方法相近。开发大型软件难度相对降低,易被人所理解,同时也可以更好的满足客户需求。
    2、可以灵活的修改软件,软件稳定性高,这就使的后期可维护性有了很大的提高。而后期的软件升级也相对更加容易,更加稳定。

    3、面向对象的程序可重用性有了很大的提高,减少了程序冗余,代码重复,这在一定程度上也降低了开发难度,同时便于维护。

    缺点

    1、面向对象开发也存在着许多弊端,由于面向对象对环境的依赖,虽然大部分拥有了不错的跨平台性能,但需要依赖环境的支持,而相关的开发软件并不全面充分。

    2、面向对象开发不大适合比较大型的信息管理系统开发,而如果从整体设计划分不合理的情况下,会导致系统结构有较大缺陷,关系无法正常分配。

    3、由于其开发逻辑思维与人相似,所以无法从科学的角度管理和优化开发。

    五、对以上总结如下:

    传统方法学编程是以过程为中心的,尽量把大的程序划分为许多个相对独立、功能尽可能简单的小的程序模块,其强调重视过程,重视功能的结构化,和简单化。最终实现功能是通过一系列过程的调用和处理来完成。虽然经过时间累积开发人员们的不断完善,传统开发方法一直都有新的成果,模式出现,但无可避免的被面向对象开发方法所冲击。

    面向对象编程是将对象作为中心的,其功能的实现是对一系列相关对象的操作,给对象发送消息,再由对象来执行相对应的一系列操作并返回结果,重在强调对象。而在理论上,面向对象的程序设计方法可以生产更良好的模块内聚和耦合特性,更好得实现软件开发的逻辑原则,这也使得面向对开发的软件更易于重用与维护,也相对更加稳定,质量也相对更高。

    展开全文
  • 结构方法和面向对象方法详解

    千次阅读 2020-09-02 17:59:58
    一、结构方法和面向对象方法的地位 在系统建模中占主导地位。 二、结构方法(Structure Analysis,SA) 软件工程中, 结构方法是较为经典的设计与开发方式之一, 侧重于对系统进行功能 分解,它使用图表和文字在...

    一、结构化方法和面向对象方法的地位

     在系统建模中占主导地位。
    

    二、结构化方法(Structure Analysis,SA)

    软件工程中, 结构化方法是较为经典的设计与开发方式之一, 侧重于对系统进行功能 分解,它使用图表和文字在不同抽象层次上描述系统。复杂的过程被层层分解为子图,直到每一个子过程都清晰得足以实现为止。
    SA使用数据流图(DFD)和实体-关系图(ERD)进行系统建模,之后再为系统的每一个功能画出描述功能行为的状态转换图。

    补充:
    1.数据流图:数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
    2.实体-关系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。实体关系图表示在信息系统中概念模型的数据存储。

    SA应用范围:

    1.客户对他们需求十分明确。
    2.业务过程定义的非常好,不会经常改动。

    结构化方法的特点:

    1.重点放在数据结构、算法和执行步骤上,过程难以重用;
    2.编程上本质是机器/汇编语言的抽象

    三、面向对象方法(OOA)

    在面向对象方法的分析中,分析以对象为中心,侧重于从现实对象的角度出发去研究和理解问题,在分析阶段不考虑过程。

    OOA的应用范围:

    1.软件将以面向对象的语言来编程,如:C++。
    2.客户需求陈述不清。
    3.客户会频繁增加新的功能。
    4.开发的系统很复杂,迭代关系较强。

    四、结构化方法和面向对象方法的区别

    其主要的区别在于侧重点和风格不同,两种技术从不同的角度看待同一个问题。
    举例说明:

    在花名册管理系统中,使用SA方法分析时,系统将花名册功能分为L:建立花名册, 打开花名册,添加学生,修改信息,删除信息等,而从OOA方法分析时,系统则将分为学生,班级.专业、年级等。

    注:大致举例,C语言采用结构化,Java采用面向对象。

    本文参考:面向对象分析与设计(UML) 清华大学出版社

    展开全文
  • 面向对象程序设计的4个主要特点

    万次阅读 2018-01-01 00:44:05
    面向对象程序设计的4个主要特点是什么? 抽象 封装 继承 多态 类和对象体现了抽象和封装 基于以上四点的程序称为面向对象的程序设计。 什么是类? 前边我们学习过c++中的结构体,struct的使用是先声明,然后定义一个...

    面向对象程序设计的4个主要特点是什么?

    抽象

    封装

    继承

    多态

    类和对象体现了抽象和封装

    基于以上四点的程序称为面向对象的程序设计。

    什么是类?

    前边我们学习过c++中的结构体,struct的使用是先声明,然后定义一个该结构体的变量,最后再初始化(赋值)

    其实结构体的声明当中有很多不同数据类型的成员,在一个结构体当中,这就是对属性的封装,但是结构体与类相比较,还缺少了一个重要的环节,结构体当中只有属性,只封装了属性,但没有封装相应的操作,也就是没有封装操作成员属性的函数。

    类当中有两个方面,一是封装属性,二是封装函数。在自己声明的类当中要既有属性又有函数,这就是类。

    什么是对象?

    在结构体中声明一个结构体就相当于我们设计了一个类,定义一个结构体就相当于我们定义了一个对象

    比如 声明一个结构体相当于封装了一个类(但缺少相应的操作)

    struct Student{

    private int num;

    string name;

    float score;

    string address;

    这里如果再有函数就是一个类了

    };

    定义给两个结构体,相当于我们定义了两个对象

    Student student1,student2;

    初始化结构体,相当于对象的初始化


     

    客观世界中任何一个事物都可以看成一个对象(Object),对象可以是自然物体(如汽车、狗熊)也可以是一种逻辑(如班级、连队)。

    任何一个对象都有两个要素:一个是静态特征,如班级专业,班级人数,所在教室,这种静态特征称为属性。

                                                 一个是动态特征,如班级学习、班级开会、班级体育比赛,这种动态特征称为行为(或功能)。

    封装的意义?

    把一部分或全部属性和部分功能(函数)对外界屏蔽,就是从外界(类的大括号之外)看不到,不可知,这就是封装的意义。

    实际上就是用了一个后边会介绍的关键字 private 私有化关键字来完成,就是隐蔽,比如账号的密码,你如果玩网络游戏,你的账号密码别人都可以看到,访问,所以要把它封装。

    封装两个方面的含义:一是将有关数据和操作代码封装在对象当中,形成一个基本单位,各个对象之间相对独立互不干扰。

                                       二是将对象中某些属性和操作私有化,已达到数据和操作信息隐蔽,有利于数据安全,防止无关人员修改。


     

    类与对象之间的关系是什么?

    程序设计当中,常用到抽象这个词,这个词就是解释类与对象之间关系的词。

    类与对象之间的关系就是抽象的关系。

    一句话来说明:类是对象的抽象,而对象则是类得特例,即类的具体表现形式。

    举例说明上面的那句话:

    我们都是人类,人类是不是有自己的属性,属性有年龄、名字、ID、性别,人类是不是有功能,即操作能力,能说话、能吃饭、能睡觉,能思考解决问题。

    我们大家都是人类,我们彼此却又不相同,我们每一个人具有自己的属性的能力,每一个人就是人类的某一个对象。

    把我们共同的属性和功能向上抽取,这就是抽象,抽象程一个人类。


     

    继承

    面向对象的继承是为了软件重用,简单理解就是代码复用,把重复使用的代码精简掉的一种手段。

    如何精简,当一个类中已经有了相应的属性和操作的代码,而另一个类当中也需要写重复的代码,那么就用继承方法,把前面的类当成父类,后面的类当成子类,子类继承父类,理所当然。就用一个关键字extends就完成了代码的复用。


     

    多态

    没有继承就没有多态,继承是多态的前提。

    举例来说明多态

    猫、狗、鸟都是动物

    动物不同于植物,猫、狗、鸟都可以叫、都可以吃

    这些功能可以同时继承自动物类,猫类、狗类、鸟类都是动物类的子类

    但是猫的叫声是“喵喵喵” ,狗的叫声是“汪汪汪”,鸟的叫声是“吱吱支”

    猫爱吃鱼,狗爱吃骨头,鸟爱吃虫子

    这就是虽然继承自同一父类,但是相应的操作却各不相同,这叫多态。

    由继承而产生的不同的派生类,其对象对同一消息会做出不同的响应。


     

    知道了以上概念就可以进行面向对象编程(Object Oriented Programming,简称OOP)

    现在开始声名一个学生类:

    class  Student{

    int num;

    string name;

    char sex;

    void display(){

    cout<<"num:"<<num<<endl;

    cout<<"name:"<<name<<endl;

    cout<<"sex:"<<sex<<endl;

    }

    };

    封装一个类,然后用这个类定义两个对象

    Student student1,student2;

    如果是重要或是私有的信息,不让外界知道,可以进行私有化处理:

    class {

    private:

    int num;

    string name;

    char sex;

    public:

    void display(){

    cout<<"num:"<<num<<endl;

    cout<<"name:"<<name<<endl;

    cout<<"sex:"<<sex<<endl;

    }

    }student1,student2;

    在C++中如果不定义private和public,则系统默认为是私有。

    还可以用无名类来定义对象,必须要求封装类之后同时定义对象。


     

    对象成员的引用或初始化

    私有化的不可以这样写

    不能 student1.num=100001;student1.name=”张三";针对于public:

    对象调用函数 student1.display();

     

    展开全文
  • 面向对象的开发,终究是要有个对象,不能老是玩函数。
  • 2021面向对象程序设计复习习题集

    千次阅读 2021-12-21 21:52:39
    复习习题集仅为大二年级非计算机专业学生python面向对象考试复习使用(未完结) 页码取自Dusty Phillips的Python 3 面向对象编程(第二版)
  • java中直接打印对象

    千次阅读 2021-02-28 15:02:28
    java中直接打印对象,会调用对象.toString()方法。如果没有重写toString()方法会输出"类名+@+hasCode"值,hasCode是一个十六进制数//没有重写toString()方法的类class Person{private String name;//构造方法public ...
  • 跟着出国留学网看看2019ARWU软科世界大学自动与控制专业排名TOP50。自动控制系统是指能够实现自动控制任务的系统,由控制器与控制对象所组成。自动控制系统的概念自动控制(automatic control)是指在没有人直接...
  • 面试题1 什么是面向对象

    千次阅读 2018-01-25 11:06:38
    现在这场面试其实就是在运用面向对象的思想在解决问题,公司老板招聘员工代表公司的业务量大,公司蒸蒸日上在发展,公司需要找一些具备专业知识的对象来完成公司的工作,我们中的某些人就是这个对象
  • Python语言的特点不包含____________。

    千次阅读 2021-01-30 03:09:48
    ( ) 【判断题】区域地理信息系统是具有有限目标和专业特点的地理信息系统,为特定专门目的服务。() 【单选题】( )是EDI技术的核心。 【多选题】GPS地面控制部分由若干个跟踪站组成,根据其作用不同,这些跟踪站又被分为...
  • 竞赛的特点是与高等学校相关专业的课程体系和课程内容改革密切结合,以推动其课程教学、教学改革和实验室建设工作。 2、“恩智浦”杯全国大学生智能车竞赛(飞思卡尔杯) 全国大学生智能汽车竞赛起源于韩国,韩国...
  • 结构方法、面向对象方法的区别

    千次阅读 2016-06-22 09:32:16
    结构方法、面向对象方法的区别 1.结构方法遵循的基本原则 结构方法的基本思想就是将待解决的问题看作一个系统从而用系统科学的思想方法来分析和解决问题结构方法遵循以下基本原则 (1)抽象...
  • 什么是形式

    千次阅读 2018-08-10 05:22:32
    形式方法在古代就运用了,而在现代逻辑中又有了进一步的发展和完善。这种方法特别在数学、计算机科学、人工智能等领域得到广泛运用。它能精确地揭示各种逻辑规律,制定相应...
  • java面向对象简介

    千次阅读 多人点赞 2021-11-06 13:59:14
    人们希望构建一个无须深奥的专业训练就可以进行编程的系统,并且要符合当今的标准惯例。因此,尽管人们发现C++不太适用,但在设计Java的时候还是尽可能地接近C++,以便系统更易于理解,Java剔除了C++中许多很少使用、...
  • 对象存储(OSD)及架构原理

    千次阅读 2020-06-30 16:11:50
    什么是对象存储(OSD)? 存储局域网(SAN)和网络附加存储(NAS)是我们比较熟悉的两种主流网络存储架构,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object...
  • Java中的基本操作单元 - 类和对象

    千次阅读 多人点赞 2020-02-26 18:51:25
    文本关键字:类、属性、行为、实例对象。说到类和对象,这都是两个比较抽象的词,如果用在程序中,那就更不知道是什么意思了。其实大家可以先不联系程序,我们在对一大堆东西分类的时候自然是有一个标准的,符合...
  • C++ 类中的static成员的初始特点

    千次阅读 2018-08-23 09:34:44
    C++ 类中的static成员的初始特点 在C++的类中有些成员变量初始和一般数据类型的成员变量有所不同。以下测试编译环境为: ➜ g++ -v Using built-in specs. COLLECT_GCC=g++ Target: x86_64-linux-gnu gcc ...
  • 文件存储NAS与对象存储OSS

    千次阅读 2021-02-04 15:44:47
    NAS(Network Attached Storage):是一套网络储存设备,通常是直接连在网络上并提供资料存取服务,一套 NAS 储存设备就如同一个提供数据文件服务的系统,特点是性价比高。NAS采用NFS或CIFS命令集访问数据,以文件为...
  • 什么是面向切面编程?

    千次阅读 多人点赞 2021-08-21 19:04:34
    学习完面向对象编程和面向接口编程,下一步就是面向切面编程,快来mark!
  • 机器人工程专业是集信息、电子、计算机、控制和机械及认知生物等技术为一体的,所研究的对象更“偏硬”一点,以研发出能够最大限度模拟生物体的机电控一体智能系统为目标。它需要有合理的机械结构、灵敏的感知和...
  • JAVA结构处理开源库SPL

    万次阅读 多人点赞 2022-05-10 16:38:41
    应用中的业务逻辑大都会涉及结构数据处理。数据库(SQL)中对这类任务有较丰富的支持,可以相对简易地实现业务逻辑。但Java却一直缺乏这类基础支持,导致用Java实现业务逻辑非常繁琐低效。结果,虽然架构上有各种...
  • 案例上手 Python 数据可视

    万次阅读 多人点赞 2019-02-27 23:30:05
    课程亮点 ...数据可视是数据分析和机器学习的重要环节,比如数据清洗、特征工程、机器学习、数据分析(特别是报告)、评估等环节都会用到“数据可视”技术。 数据可视同时还广泛存在于各...
  • 哈尔滨工程大学自动学院的复试和其他学校一样,分为笔试和面试。面试又包括英语口语测试,抽题口头回答测试以及老师提问回答。下面结合周围同学的相关回忆,将抽题测试常考的知识点大致总结一下,不可能面面俱到,...
  • 构造方法的特点

    千次阅读 2021-08-19 16:31:55
    (3)构造方法的主要作用是完成对象的初始工作,它能够把定义对象时的参数传给对象的域。 (4)构造方法不能由编程人员调用,而要系统调用。 (5)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,...
  • 面向对象特点,封装性,继承性,多态性!

    万次阅读 多人点赞 2015-01-29 19:37:02
    1.面向对象程序设计有三大特点,分别是封装,继承,多态,接下来就介绍一下这三个特点,积累一下。 2.封装,封装是面向对象编程的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体是类,...
  • JAVA面向对象的思维导图

    千次阅读 2019-08-31 20:05:43
    说的专业一点,封装就是把对象的属性和操作结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。我们程序设计要追求“高内聚,低耦合”。 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合是仅...
  • 【JAVA高级技术】Java 处理结构数据多种解决方案

    万次阅读 多人点赞 2022-04-23 23:07:18
    Java 处理结构数据多种解决方案
  • 数字成熟度评估模型一文读尽

    千次阅读 2022-03-03 16:26:53
    虽然纯“打分”的数字成熟度评分对企业并没有太大帮助,但理解这些模型的设计思想对于我们理解数字转型很有价值。 正文开始 本文一共提供了CMM、DMM、DCMM、DCAM、MD3M、DataFlux、IBMMMI、DSMM、IOMM、中新联团...
  • 自动、信息、数字、智能
  • 面向对象程序设计原则

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 77,240
精华内容 30,896
热门标签
关键字:

对象专业化的特点是什么