面向对象分析与设计

面向对象前四周学习总结与反思

只谈情不闲聊 提交于 2020-04-05 17:41:58
经过了四到五周的学习,我对Java有了更深的认识,就作业而言,头两次我做的还不错,自我感觉良好,也许当时还没有涉及到面向对象,而是面向过程,做法和C语言相似,所以产生了java很简单的错觉,每次都留到最后一天来完成,我也因此付出了代价,第三次作业直接不及格,我痛定思痛,分析了一下这三次作业的异同以及我第三次不及格的原因。 第一次作业纯属是面向过程,一个main里面写完所有代码,和C语言无异,我有着较好的C语言基础所以轻轻松松拿了个A。第二次作业要求在类中编写方法,比第一次作业进了一步,但于我而言还是轻松通过。第三次作业更是层层递进,每一题都是跨了一个纪元的感觉,第一题和第二是个引导,让学生熟悉多个类的定义,第三题和第四题给了我们几个设计不一样的UML类图,因为对于OO编程不够熟悉,之间的细节很难把控,导致我编写的带码不断出错,再加上时间不够导致了最终第三次作业的不及格。这三次作业所花的时间比例为1:2:5。第三次耗费了大量的时间,但却达不到想要的成果,究其原因还是因为对OO编程的了解不足,经过这几天的反思,我发现OO编程更为严谨,不但需要考虑边界值,还需要精心设计实用的结构以及确定每个类之间的关系。如果设计的好对后面的编程大有助益,几乎不会出现重复的代码,main方法也会变得更为简洁,但需要花费更多的时间进行分析设计。 面向过程注重的是过程,从头到尾的的编程

第一阶段作业总结

时光总嘲笑我的痴心妄想 提交于 2020-04-05 16:36:37
------------恢复内容开始------------ 前言 第一阶段的作业总共有三次PTA上的作业,第一次作业有5题,第二次以及第三次作业都为4题并且题目基本是相同的,但是要求确实不同的编程思维,所以我个人感觉第一阶段的作业重点在让我们由原本的面向过程的编程方式慢慢过渡到目前我们所重点学习的面向对象编程方式。经过本次作业可以让我们从了解面向对象思维到运用面向对象思维方式到我们的编程过程之中。我个人感觉Java毕竟是C语言基础上发展的语言,所以可以说比C语言更有优势,C语言中需要对函数和变量进行定义和声明,而JAVA只用定义,不用声明; Java语言有new关键字,用于创建引用对象,C语言没有此类关键字; C语言不是面向对象的,而是面向过程,而JAVA是面向对象的语言;C语言可以直接操作内存,而JAVA不能;C语言有指针,而JAVA没有等等。 1.作业过程总结 ①总结三次作业之间的知识迭代关系; 第一次作业算是简单的循环运用,第二、三次则较复杂同时第三次要求运用面向对象的思维来编写。 ②如何通过作业逐步从面向过程过渡到面向对象; 在第一次作业以及第二次作业我编程时感觉回到了大一学习C语言时的前几次作业,题目类型差不多此外就是编程时的思维方式改变还不太大,但第三次作业编写时明显感觉与前两次不同,并且由于第二次作业与第三次作业的题目相同

c++为什么要面向对象?

夙愿已清 提交于 2020-04-01 07:58:13
前言   c和c++的区别是什么?不可置否,最重要的就是c++的编程思想是面向对象,而c的编程思想是面向过程,这是它们的本质区别,如果你在使用c++编程时使用的还是面向过程的编程思想,那么还不如使用c,因为这样的做法已经丢掉了c++的思想精髓。在学习一门语言时,最重要的是学习它的设计思想,因为语法都是大同小异的,很快便可以掌握。那么面向过程和面向对象编程的发展历史如何,区别是什么,各自的优缺点是什么,且听我一一道来。    一、“自顶向下,逐步求精”的面向过程程序设计    面向过程程序设计的思想即这样的一种解决思路 - 提出问题,分析问题的处理流程,将大问题分解为小问题,如果小问题比较复杂,就继续划分小问题为更小的问题,然后通过小模块一一解决小问题,最后再根据整个业务流程将这些小问题串在一起(调用函数),这样就达到了解决所有问题的目的,如下:   于是,这样从问题出发,自顶向下、逐步求精的开发思想我们称之为“面向过程程序设计思想”,因为它主要是解决问题中的一个个过程。这种思想也是最早的编程语言的思想,因为它比较符合我们解决问题的方法,其他语言比如早期的Fortran、JavaScript等都是如此。它的优点如下: 优点1:程序结构简单 - 仅由三种基本结构组成   面向过程编程的思想在程序实现上只需要三种控制结构,即顺序、选择、循环。通过这三种基本结构,我们就可以解决任何问题

《小团团团队》第四次作业:项目需求调研与分析

僤鯓⒐⒋嵵緔 提交于 2020-03-31 08:00:17
项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验八 团队作业4:基于原型的团队项目需求调研与分析 团队名称 小团团团队 作业学习目标 (1)体验以原型设计为基础的团队软件项目需求获取技巧与方法。(2)学习利用UML模型描述用户需求。(3)编写软件需求规格说明书。 任务一:UML软件绘制工具简介 UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。UML定义了5类,10种模型图。 五种类图定义 1、用例图:从用户角度描述系统功能,并指各功能的操作者。 2、静态图:包括类图,包图,对象图。 - 类图:描述系统中类的静态结构。 - 包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构。 - 对象图:是类图的实例。 3、行为图:描述系统动态模型和对象组成的交换关系。包括状态图和活动图。

如何向妻子解释设计模式

≡放荡痞女 提交于 2020-03-26 10:25:32
简介   自上篇翻译< 如何向妻子解释OOD >后收到了很好的反应。故特继续翻译作者的< How I explained Design Patterns to my wife: Part 1 >一文,以飨读者。在此文中,作者依旧通过与妻子浅显易懂的对话,向读者解释了什么是设计模式。 设计模式是什么? Shubho :通过我们关于面向对象设计原则(OODP,即SOLID原则)的对话,我想你已经对面向对象设计原则(OODP)有了基本的认识。希望你不要介意我把对话分享到博客上。你可以在这找到它: < 如何向妻子解释OOD >. 设计模式是这些原则在某些特定公共场景下标准化的应用,接下来让我们通过一些例子学习什么是设计模式。 Farhana : 当然,我喜欢例子。 Shubho : 让我们以汽车为例讨论一下。汽车是一个很复杂的对象,由成千上万的其它对象组成,如发动机,车轮,方向盘,车座,车体等等其他不同的部分或部件。 汽车部件 当装配汽车时,制造商需要集中并装配这些更小的自成汽车子系统的不同部件。而这些不同的小部件同样也是复杂的对象,其它制造商同样要生产并组装它 们。在生产汽车时,汽车公司并不会为怎么生产组装这些部件操心(前提是他们要确保这些对象/设备的质量)。当然,汽车制造商更加关心怎么装配这些不同部件 以便能生产不同型号的汽车。 通过遵循不同的设计,组装不同的部件,生产不同型号的汽车

什么是面向对象(OOP)

六眼飞鱼酱① 提交于 2020-03-23 18:54:11
OOP,Object Oriented Programming,就是面向对象的编程啊,还有OOD(面向对象的设计),OOA(面向对象的分析)。那什么是面向对象呢?要想了解这个问题我们要先了解面向过程,这样对比我们就好理解了。 很早很早以前的编程是面向过程的,比如实现一个算术运算1+1 = 2,通过这个简单的算法就可以解决问题。但是随着时代的进步,人们不满足现有的算法了,因为问题越来越复杂,不是1+1那么单纯了,比如一个班级的学生的数据分析,这样就有了对象这个概念,一切事物皆对象。将现实的事物抽象出来,注意抽象这个词是重点啊,把现实生活的事物以及关系,抽象成类,通过继承,实现,组合的方式把万事万物都给容纳了。实现了对现实世界的抽象和数学建模。这是一次飞跃性的进步。 举个最简单点的例子来区分 面向过程和面向对象 有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择 1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。 2、去饭店,张开嘴:老板!来一份鱼香肉丝! 看出来区别了吗?这就是1是面向过程,2是面向对象。 面向对象有什么优势呢?首先你不需要知道鱼香肉丝是怎么做的,降低了耦合性。如果你突然不想吃鱼香肉丝了,想吃洛阳白菜,对于1你可能不太容易了,还需要重新买菜,买调料什么的。对于2,太容易了,大喊:老板!那个鱼香肉丝换成洛阳白菜吧,提高了可维护性

学好C++语言的经验分享

戏子无情 提交于 2020-03-23 14:56:09
3 月,跳不动了?>>> 最近常有人问我如何学好C++,所以,我把我个人的一些学习经验写在这里,希望对大家有用。首先,因为如何学好C语言中谈到了算法和系统,所以这里就只谈C++语言。 C++是最难的语言。这个世界上最难的编程语言可能非C++莫属了。你千万不要以为几天就可以学好C++,C++的学习曲线是相当BT的,你可以看看这篇文章。C++是一门很自由的语言,自由到了有点BT和恐怖的地步。我甚至认为C++并不是一门成熟的编程语言,因为太容易犯错了。所以,你一定要在一开始就要有很小心谨慎的态度,并把C++当成一种难以训服的猛兽来看待。 多问“为什么要这样”的问题。学习C++一定要多问几个“为什么是这样”,“凭什么要这样”的问题。比如:很多人知道C++有拷贝构造函数和初始化列表,但你真的知道为什么要有拷贝构造函数?为什么要有初始化列表吗?为什么要有template,为什么要有RTTI,为什么不是别的呢?难道就是为了让一门语言变得Cool一些吗?完全不是这样的,C++中的任何一个feature都有些实实在在的原因,你一定要去了解为什么要把C++设计成这样的原因,你才能学好C++。有空看看《C++演化和设计》一书。 看书,大量的C++书。你可以按如下先后顺序阅读(下面这些书,我花了大约4-5年的时间,今天我还在随时温习) 《C++ Primer》,这本初级读本可能让会你啃得很痛苦

面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别

混江龙づ霸主 提交于 2020-03-22 12:44:04
单从字面上来讲,面向过程侧重的是“ 过程 ”,面向对象侧重的是“ 对象 ”。就像是“ 这件事该怎么做 ”与“ 这件事让谁来做 ”的区别,后者的“ 谁 ”就是对象。 面向过程(结构化)分析实质上是一种创建模型的活动,就是 面向数据 自顶向下逐步求精进行需求分析(教材P59)。其最终目标是 得出对程序处理过程的描述。 面向对象分析的关键是识别问题域内的 类和对象 ,并分析他们相互间的关系,最终 建立起问题域的正确模型 。 结构化分析方法一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。 面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来描述客观世界和设计、构建相应的软件系统。 我以为 ,面向对象的分析方法从类与对象的关系上出发,有更强的稳定性,这一重要的优点将使得当代软件工程的发展完成从传统的结构化范型到面向对象范型的转变。 来源: https://www.cnblogs.com/hello-kitty-/p/5277161.html

面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?请根据自己的理解简明扼要的回答。

允我心安 提交于 2020-03-22 11:36:25
正如百度所说,“面向过程”是一种以过程为中心的编程思想。“面向过程”也可称之为“结构化”编程思想,他们是最早发展,并且在编程中起着重要作用的编程思想。 当我们遇到用问题时,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 对于我来说,学习编程首先接触的便是面向过程的编程思想,如大学首先老师就教我们用c语言编程,对于面向过程的变成思想,自己也有许多的感触, 1, 面向过程的编程思想比较容易实现,解决一个问题时只需要一步一步的分析,一个方向走下去就基本可以实现,但是这也仅限于一个比较小的程序,当遇到一个大问题时,复杂的逻辑关系,使得面向过程变得复杂难写。 2, 面向过程的编程思想最重要的是模块化的思想方法,他的优势在于他的流程非常的清楚,非常便于函数与模块的组织。 而对于面向对象的编程思想则比面向过程的编程思想发展的要晚一些,起初,“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法,现在面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析,面向对象的设计,以及我们经常说的面向对象的编程实现,面向对象的编程思想在我的理解中就是把一个比较大的软件项目当成一个对象,然后这个对象的各个部位用一个类专门实现,每个类都是留有接口的,最后把各个部位拼装起来成为最终的产品,这种编程方法使得一个项目更加的具体清晰

深入理解面向对象与面向过程

淺唱寂寞╮ 提交于 2020-03-22 11:23:23
面向对象&面向过程 什么是面向过程? 自上而下顺序执行,逐步求精; 其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构; 各模块之间的关系尽可能简单,在功能上相对独立; 每一模块内部均是由顺序、选择和循环三种基本结构组成; 其模块化实现的具体方法是使用子程序。 程序流程在写程序时就已决定。 什么是面向对象? 把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。 对同类对象抽象出其共性,形成类。 类中的大多数数据,只能用本类的方法进行处理。 类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信 程序流程由用户在使用中决定。 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种编程思想 面向过程 1. 强调的是功能行为 2. 关注的是解决问题需要哪些步骤 面向对象 1. 将功能封装进对象,强调具备了功能的对象 2.关注的是解决问题需要哪些对象 理解面向对象-把大象装进冰箱 面向对象:把一个人看成一个对象, 这个人 可以打开冰箱,可以把大象装进冰箱,可以关冰箱 面向对象更加符合人的思考习惯,从执行者变成了指挥者 面向过程和面向对象 面向过程: 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象: 是把构成问题的事务分解成各个对象,每个对象都有自己独立的属性和行为,