初学C#,什么是面向对象?为什么要使用面向对象编程?(一)

2023-11-24    分类: 网站建设

总结:

对于 C# 初学者,什么是面向对象?为什么要使用面向对象编程?面向对象分析属于软件开发过程的问题定义阶段,其目标是清晰准确地定义问题域。传统的系统分析会产生一套面向过程的文档,这些文档定义了目标系统的功能;面向对象分析产生了描述系统功能和问题域基本特征的综合文档。原则 面向对象分析的主要原则如下。 1.从许多事物中抽象地摒弃个别的、非本质的特征,提取共同的本质特征。这叫做提取

对于 C# 初学者,什么是面向对象?为什么要使用面向对象编程?面向对象分析属于软件开发过程的问题定义阶段,其目标是清晰准确地定义问题域。传统的系统分析会产生一套面向过程的文档,这些文档定义了目标系统的功能;面向对象分析产生了描述系统功能和问题域基本特征的综合文档。

原则

面向对象分析的主要原则如下。

1.摘要

从许多事物中摒弃个别的、非本质的特征,提取共同的本质特征,称为抽象。 抽象是形成概念的必要手段。

抽象原理有两层意思:第一,问题域中的事物虽然复杂,但分析者不需要了解和描述它们的一切,只需要分析和研究与系统目标相关的事物,他们的本质。 特点。其次,通过丢弃个体事物细节上的差异,提取它们的共同特征,我们可以得到事物的一些抽象概念。 .

抽象是面向对象方法中使用最广泛的原则。抽象原则包括两个方面:流程抽象和数据抽象。流程抽象意味着完成一个功能的任何操作序列都可以被其用户视为单个实体,尽管实际上它可能由一系列较低级别的操作完成。数据抽象是指根据对数据施加的操作来定义数据类型面向对象的编程语言,而对数据值的限制只能通过这些操作进行修改和观察。数据抽象是面向对象分析的核心原则。它强调将数据(属性)和操作(服务)集成为一个不可分割的系统单元(即对象)。对象的外部只需要知道它做了什么,而不是它是怎么做的。

2.封装

封装就是将一个对象的属性和服务组合成一个不可分割的系统单元,尽可能隐藏对象的内部细节。

3.继承

特殊类的对象所拥有的通用类的所有属性和服务,称为特殊类对通用类的继承。

面向对象分析采用继承的原则,即在一个通用类和一个特殊类形成的每个通用-特殊结构中,通用类和所有特殊类的对象实例都具有属性和特征。一次性共享服务。在通用类中明确定义。在特殊类中,通用类中定义的事物不是重复定义的,而是在语义上,特殊类自动隐式地具有其通用类(以及所有更高级别的通用类)和服务中定义的所有属性。继承原则的优点是使系统模型更加简洁明了。

4.分类

是将具有相同属性和服务的对象归为一类,并以此类作为对这些对象的抽象描述。分类原则实际上是抽象原则应用于对象描述的一种表现形式。

5.聚合

聚合的原理是把一个复杂的事物看成是几个简单事物的集合,从而简化了对复杂事物的描述。

6.联系方式

相关性是人类在思考问题时经常使用的一种思维方式:将一件事与另一件事联系起来。人们之所以能够联想,是因为事物之间存在某种联系。

7.简讯

这个原则要求对象只能通过消息进行通信,不允许在对象外直接访问对象的内部属性。消息通信是由封装原理引起的。在OOA中,需要一个消息连接来表示对象之间的动态关系。

8.粒度控制

一般来说,面对一个复杂的问题域,一个人不可能同时看大局和洞察力。因此,你需要控制你的视野:在考虑全局时,注意它的主要组成部分,暂时不检查每个部分的具体细节;在考虑某一部分的细节时,暂时将其余部分搁置一旁。这就是粒度控制的原理。

9.行为分析

现实世界中事物的行为是复杂的。由大量事物组成的问题域中的各种行为往往是相互依存和交织在一起的。

阶段

面向对象的分析过程可以分为两个阶段:问题域分析和应用分析。

问题域分析是软件开发的基本部分。目的是让开发者了解问题域的结构,建立通用的系统实现环境。问题领域分析给出了一组抽象概念(代表问题领域知识的高层次,往往超出了当前应用的范围)作为制定特定系统需求的参考。问题域分析实际上是一个学习过程。在这个阶段,软件开发者应该尽可能多地了解当前系统中与应用相关的知识,自由思考,放宽考虑范围,尽可能识别与应用相关的概念。 问题域分析的边界可能是模糊的。凭借对问题领域的广泛了解,当涉及到具体的应用时,可以更快地进入状态面向对象的编程语言,掌握应用的核心知识。而且,当用户对目标系统的需求发生变化时,广泛的分析可以帮助我们预测目标系统会发生哪些变化。通常进行小组分析,小组成员可以包括领域专家和分析师。在分析过程中,系统的基本概念(对象、类、方法、关系等)。 ) 应该承认,应该承认问题域的特征,并将这些概念整合到问题域的模型中。问题域的模型必须包含概念之间的关系以及每个概念的所有信息。识别出的相关概念应根据信息内容有机地整合到问题域的综合视图中。

应用分析是基于在问题域分析过程中建立的问题域模型。应用分析时,将问题域模型应用到当前的特定应用中。 一、利用收集到的用户信息在问题区域之间进行选择,以用户需求为约束,减少问题区域的信息量。因此,问题域分析的视野大小直接影响应用分析保留的信息量。一般来说,问题域分析阶段生成的模型不需要用编程语言表达,而应用分析阶段生成的影响条件需要用某种编程语言表达。模型识别的需求可以是一个应用程序,也可以是多个应用程序。通常我们关注两个方面,即应用程序视图和类视图。在类视图中,必须详细说明每个类的属性和操作,必须显示类之间的交互。

目标

Coad 和 Coad 认为面向对象分析应该主要考虑与特定应用程序相关的对象,以及对象之间的结构和交互关系。在面向对象分析中,需要建立分析模型来描述系统的功能。

面向对象分析需要完成以下两个任务:

——正式说明所面临的应用问题,最终成为软件系统基本结构的对象,以及系统必须遵守的、由应用环境决定的规则和约束。

-明确说明构成系统的对象如何协同工作以完成指定的功能。

通过面向对象分析建立的系统模型是以概念为中心的,所以称为概念模型。概念模型由一组相关的类组成。面向对象分析可以通过自上而下的逐层分解构建系统模型,也可以从定义的类自下而上构建新的类。概念模型的构建和审核包括以下五个层次:

——类和对象层

——属性层

——服务层

——结构层

——专题层

这五个层次不是构成软件系统的层次,而是分析过程中的层次。也可以说这个问题有不同的方面。每个级别的工作都会向系统规范添加一个组件。当所有五个层次的工作都完成时,面向对象分析的任务就完成了。

在实际操作中,面向对象分析的目标是获取问题域的功能模型、对象模型和动态模型,并用相应的UML图来表示。

步骤

面向对象分析通常遵循以下步骤:

(1)识别对象和类。可以从应用领域开始,逐步确定构成整个应用的基本类和对象。这一步需要分析目标系统在领域中的职责,调查系统环境,并确定有用的类和对象。

(2)Logo结构。有两种典型的结构,分别是通用-特殊结构和整体-部分结构。通用-特殊结构是指通用类是基类,特殊类是派生类。对于比如car是cars的基类是通用-特殊结构,整体part结构代表聚合,属于不同类的成员聚合成一个新的类,比如轮子、车身、汽车底盘都是part一辆车,这些不同功能的部件聚合成一辆车的整体。

(3) 标识属性。对象保存的信息称为它的属性。类的属性描述了状态信息。在类的实例中,属性的值代表了该对象的状态值对象。需要找出目标系统中的每个对象。对象所需要的属性,并将属性排列在适当的位置,找出实例连接,最后检查。每个属性的名称和描述应该是给定,并对属性进行特殊限制(如只读、属性值限制在一定范围内等)。

(4)身份认证服务。对象收到消息后进行的操作称为对象提供的服务。它描述了系统需要执行的处理和功能。定义服务的目的是定义对象的行为和对象之间的通信关系,具体步骤包括:

——标识对象的状态

- 确定必要的服务

- 识别消息连接

——描述服务

服务可以用类似于流程图的图表来表示。

(5)识别主体。为了更好地理解包含大量类和对象的概念模型,需要确定主体,即划分模型,给出模型的整体框架,并划分层次。您可以按照以下步骤确定主题。

——确定主题

——改进和完善主题

——将主题添加到分析模型中

标题是一个应用相关的概念,不是随便画的。主题级工作有助于理解分析结果。

优势

面向对象分析的要点是:

(一)加强对问题域和系统职责的理解;

(2)改善与分析相关的各个人员之间的沟通;

(3)对需求变化的适应能力很强;

(4)支持软件复用;

(5)整个软件生命周期的一致性;

(6)实用性;

(7)促进用户参与。

面向对象更符合人类思维,更适合对客观问题进行建模

把所有的编程当作一个对象,用正常的方式思考。

如扑克牌、分体牌、玩家牌、牌等

世界上的一切都是对象。说白了,还是用面向对象比较实用。如果你想修改它,它会更容易,更灵活。示例:您有 5 个页面使用相同的查询功能。在这5页上写一次代码方便吗?当然也可以复制粘贴,但是如果要修改会比较麻烦,那么可以使用重写的方法创建A类,写自己想写的,需要的时候再调用。如果你修改它,你只需要修改它。方便吗?

什么是 C# 面向对象

? 0? 0C# 面向对象? 0? 0 面向对象思维:面向过程的编程往往会导致所谓的单一应用,即所有的功能都包含在几个模块中(通常包含在一个代码模块中)。在使用oop(面向对象)技术时,经常会用到很多代码模块。每个模块提供特定的功能,每个模块之间相互隔离,甚至完全独立于其他模块。这种模块化的编程方法提供了极大的多样性,大大增加了代码重用的机会。 ? 0? 0 在传统的应用程序中,执行过程通常是简单和线性的。应用程序加载到内存中,从A点执行到b点,然后从内存中卸载。在此过程中可能会使用各种其他实体,例如媒体文件的存储或图形卡功能,但处理的主体始终位于一个地方。有了oop,事情就不那么简单了。虽然可以得到同样的效果,但是实现的方式却完全不同。 Oop技术基于数据结构、意义、数据和数据交互。这通常意味着必须在项目的设计阶段投入更多的精力,但项目的可扩展性相对较高。一旦就某类数据的表达达成一致,该表达将适用于未来版本的应用程序,甚至是全新的应用程序。这将大大减少开发时间。 ? 0? 0 (一)类:?0?0 类描述了一组相似对象的共同特征。类和结构实际上是创建对象和提供处理和访问数据的对象的模板。?0?0 类定义了以下元素:?0?01.定义了该类的对象操作的数据结构(属性的名称和类型);?0?02.这些对象要执行的操作,特别是哪些操作,以及如何执行call 类的对象执行这些操作,以及执行这些操作的对象的“后台操作”。?0?0 注意:类中变量的声明必须指明该变量是否为?0?int i;//声明一个int变量并且这个变量是共享的,也就是说只要对象被启用,客户端就可以在客户端使用它。如果定义为私有产品,那么即使对象被启用,不能在客户端使用 ?0?0 类定义:? 0? 0 (小程序开发2@什么是对象? 0? 0 对象是 oop 应用程序的组件。这个组件封装了应用程序的一部分,可以是一个进程、一些数据或者一些更抽象的实体。 ?0?0 C#中的对象是由类型创建的,就像前面的变量一样,对象的类型在oop中有一个特殊的名字:可以使用类的定义来实例化对象,即创建对象的实例班级。

C#面向对象的特点是什么?

1.封装:首先,我们可以把世界上的一切都当成一个对象。这里我们以人为例,那么人就是一个对象。封装是什么意思?可以理解,封装就是人要完成一件事。他需要的所有工具都在他身边,他需要的技能在他的脑海中。这可以在没有其他人帮助的情况下完成。这样做的好处是,如果我要命令这个人完成一件事情,我不需要知道它是如何完成的,我也不需要协助他完成它。我只知道结果。如果它完成了,它就会完成。至于它,我们不需要知道先做什么,后做什么。这将帮助他尽大努力完成这些事情。书面语言的解释是:每个对象都包含其操作所需的所有信息,因此该对象不必依赖其他对象来完成自己的操作。 二、继承:以人为例。我们知道每个人都有一些共同的特征,并且必须做同样的事情。例如:每个人都有一个头,两只胳膊和两只脚。这是一个共同的特点,对吧? 如果你在生活中必须吃喝,所有这些都是一样的。如果我们现在要声明很多个人,每个人都会有这些特点,那么我们需要写很多重复的代码吗?因此,我们首先创建一个人的父类别。这个父类不代表特定的人,它只是一个具有一个人所有共同特征的虚拟人。下次我们要实例化一个特定的人,我们只需要继承上面的“虚拟人”,他就会拥有一个人的所有共同特征。无需编写通过继承重复的代码。

其实,继承的目的不仅仅是为了节省代码,还有实现背后的多态。普通初学者只需要了解继承就可以少写很多代码,在项目中继续学习。书面解释如下: 对象继承代表一种“is-a”关系。如果两个对象A和b都可以描述为“b是A”,那么就意味着b可以继承A。需要注意的是,如果A继承了b,那么A不仅拥有b除私有特性之外的所有特性,但是A也可以有自己独特的特点。在上面这个人的例子中,一个人继承了一个“虚拟人”,那么他就有了一个头、两条胳膊和两只脚。他需要吃吃喝喝,或许还能编程。所以编程是他的特点,不是每个人都能编程。三:什么是多态:多态之前必须有继承。需要理解的是,只有多个类同时继承同一个类。有一种说法叫多态。说到人,举个例子。我们之前说过,人们必须“吃”同样的东西。 “吃”是课堂表现的方式。因为一切都是人来做的,所以我们在“虚拟人”里写了这个方法之后,吃的方式就不一样了。有筷子和叉子,有的要饭,有的要面。所以如果我们要描述不同人的进食过程,就必须把这个过程放到一个具体的子类中。同样,子类可以用不同的方式实现。这意味着存在多态性。有助于程序的灵活性。需要注意的是,如果在子类中重写了父类的方法(多态),则不会再次调用父类中的方法。

c#面向对象

其实只要理解了继承、多态、封装,也就理解了面向对象。他会问你关于面向对象的问题。其实你只需要跟他解释一下继承多态封装的含义就可以了。

标题名称:初学C#,什么是面向对象?为什么要使用面向对象编程?(一)
地址分享:https://www.cdcxhl.com/news15/296265.html

成都网站建设公司_创新互联,为您提供外贸建站服务器托管搜索引擎优化外贸网站建设移动网站建设手机网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化