永发信息网

什么是对象?

答案:6  悬赏:0  手机版
解决时间 2021-05-01 12:59
什么是对象?
最佳答案
在谈及软件意义上的对象前,我们先来说说真实世界中的对象。根据《韦氏大词典》(Merriam-Webster’s Collegiate Dictionary)的词典释义,对象是

(1) 某种可为人所感知的物质;

(2) 思维、感受或动作所作用的物质或精神体。

该释义的第一部分所指就是我们熟知的“对象”:可以看到和触摸的“东西”,而且它占据空间。既然本书将把学生选课系统(Student Registration System, SRS)作为学习对象编程的入门案例,我们不妨想想一般大学中存在的物理对象的例子。

l 听讲的学生

l 讲课的教授

l 用来上课的教室

l 教室中的家具

l 教室所在的建筑物

l 学生使用的课本

诸如此类。当然,尽管所有这些对象都能在典型的大学校园中找到,但并非其中每一种都与学生选课相关,或者是SRS案例所必须的,不过现在无需担心这些事情。在本书的第二部分,你将学习使用需求规格说明书来甄别与特定抽象模型相关的对象类型。

现在,将注意力集中到释义中的第二部分,特别是“思维、感受或动作所作用的……精神体”这个短语。在一所大学中有许多重要的概念性对象;包括

l 学生选修的课程

l 教师服务的院系

l 学生得到的评分

当然,还有许多其他东西。即便我们不能看到、听到、触摸到、品尝到或是嗅闻到概念性对象,它们仍然是在描述抽象模型时和物理对象同等重要的因素。

现在稍微正式点,来为软件对象下个定义:

l 所谓(软件)对象,是一种将状态(数据)和行为(操作)合成到一起的软件构造,用来描述真实世界的一个(物理或概念性的)对象。

下面稍稍深入地分别探讨对象的两个方面——状态与行为。
记录一个学生的信息,需要哪些数据?其中一些如下例:

l 学生姓名

l 学号(ID号)

l 生日

l 住址

l 主要研究方向(如果已经提出的话)

l 累计平均等级分(GPA)

l 导师(faculty advisor)是谁

l 本学期要修的课程(course load)

l 截至目前该生已经修过的课程,修每门课程时的学期/学年,得到的分数;即学生的成绩单

等等。那么,对于课程情形又是如何呢?也许应该记录

l 课程编号(如“ART 101”)

l 课程名称(如“织篮入门”)

l 在被允许选修本课程之前学生必须先通过的课程(即先修课程)

l 课程有效学时

l 有资格承担本课程教学任务的教授列表

如此等等。用面向对象术语来说,用于描述一个对象的数据元素,被称之为对象的attribute。

这里所说的“attribute”是一种对象建模和编程的语言中立约定。但是,所有的.NET语言(包括C#)都拥有一种特殊的编程构造,被称之为“attribute”,它存在的目的远比“指示对象的数据元素”来得复杂。在谈及某种特定的.NET语言时,不要将两种不同意义的“attribute”混淆起来。(在.NET语言中,使用普通意义上的术语“field”表示对象的元素/attribute。)

我们将在第13章解释C#(.NET)中“attribute”的含义。而现在(包括本书第一部分和第二部分),只要提到“attribute”,仅指其在普遍OO意义上的含义。

当被集中起来时,对象的attribute值用来定义对象的状态(state),或状况。例如,要判断某个学生是否“具备毕业资格”(状态),可以把以下元素合成起来作参考

l 成绩单(第一个attribute),以及

l 该生目前选修的课程(第二个attribute)

用来判断该生在本学期结束时是否满足主修专业(第三个attribute)的学分要求。

一个给定的attribute可以很简单,如“GPA”可以仅表现为浮点数,也可以很复杂,如“成绩单”,就表现为更具扩展性的信息集合,无法以简单形式表达(至少无法用C#简单类型表达)。
现在,我们回头看两种对象——学生和课程——探讨它们各自的行为。学生的行为(当然是与大学学习相关的)可能包括

l 选修一门课程

l 退选一门课程

l 选择主修方向(major field of study)

l 选择导师(advisor)

l 告诉你他(或她)的GPA

l 告诉你他(或她)是否已选修某门课程,如果选修了该门课程,是在什么时候修的,哪位教授上课,以及得到的分数。

有些难以想象,类似课程这样的无生命的概念性对象会做出什么行为,但如果把课程当作一种生命体,可以想见一门课程的行为会是

l 允许学生选修

l 判断指定的学生是否已经选修

l 告诉你已经有多少学生选修,反过来说,还有多少名额空缺

l 告诉你需要什么先修课程

l 告诉你课程有效学时是多少

l 告诉你本学期哪位教授将上这门课

等等。

当特指软件对象时,我们把对象的行为或称操作(operations),定义为用以访问对象的attribute(数据)和修改/维护attribute值(数据)的方法。

花点时间回顾上文所列的学生行为,可以看到每种操作都与学生的一个或多个attribrte有关。例如:

l “告诉你他(或她)的GPA”与“访问学生的GPA attribute”相关

l “选择主修方向”与“修改学生的主修attribute”相关

l “选修一门课程”与“修改学生的当前课程列表”相关

我们已经知道,对象的attribute值集合定义了对象的状态,现在可以看到,操作能够修改对象状态。例如,定义一位尚未选定主修方向的学生为“未选定方向”的学生。调用这样一个学生对象的“选择主修方向”方法,将导致对象更新其“主修”attribute,反映出刚选定的主修方向。然后,学生的状态就从“未选定方向”变更到“已选定方向”。

从另一种角度来考虑,对象操作也可以看作是可以向对象要求提供的服务。例如,课程对象提供一种服务,该服务提供当前选修该课程的学生列表(花名册)。

在用C#这样的语言编写对象时,使用更严格的编程语言术语“method(方法)”来表示“操作”,而术语“操作”则被用于表示概念意义上的行为。
全部回答
在最有感觉的时候,她没有停下脚步,那么,也不必在一起走完那段路之后,回头去寻找那些散落在地上的感觉,路已经走完。   爱情中最伤感的时刻是后期的冷淡,一个曾经爱过你的人,忽然离你很远,咫尺之隔,却是天涯。曾经轰轰烈烈,曾经千回百转,曾经沾沾自喜,曾经柔肠寸断。 ...........
两个人一起是为了快乐,分手是为了减轻痛苦,你无法再令我快乐,我也唯有离开,我 离开的时候,也很痛苦,只是,你肯定比我痛苦,因为我首先说再见,首先追求快乐的 是
时间会让你了解爱情,时间能够证明爱情,也能够把爱推翻。没有一种悲伤是不能被时间减轻的。   如果时间不可以令你忘记那些不该记住的人,我们失去的岁月又有什么意义?   如果所有的悲哀、痛苦、失败都是假的,那该多好?可惜,世上有很多假情假义,自己的痛苦、失败、悲哀,却偏偏总是真的。 .......................
曾经渴望与一个人长相厮守,后来,多么庆幸自己离开了? 曾几何时,在一段短暂的时光里,我们以为自己深深的爱着的一个人。 后来,我们才知道,那不是爱,那只是对自己说谎。 你以为不可失去的人,原来并非不可失去。你流干了眼泪,自有另一个人逗你欢笑。你伤心欲绝,然后发现不爱你的人,根本不值得你为之伤心。 今天回首,何尝不是一个喜剧?情尽时,自有另一番新境界,所有的悲哀也不过是历史。 深有同感. ............................
对象指的是: 1、行为或思考时作为目标的人或事物。    2、特指恋爱的对方。 指男、女朋友关系,恋爱双方的行为的称呼如“谈对象、处对象”。    3、某种计算机语言中对于某特定程序的函数。 在ASP动态网页中,对象是一个抽象的概念,是要操作的目标。比如,在现实生活中,电脑就是我们搜寻资料的一个对象,他具有外观、操作系统、价格等等特点,这在对象概念中被称为属性,而利用这个电脑玩游戏、看电影、查找资料等用途,这就对应于对象里的方法,另外,主板、CPU、显卡、键盘等等组件,我们可以称作对象的集合。   在ASP动态网页中,对象的特点归结起来有三个:属性、方法、集合。   对象(object)是一件事、一个实体、一个名词,可以获得的东西,可以想象有自己的标识的任何东西。对象是类的实例化。一些对象是活的,一些对象不是。比如这辆汽车、这个人、这间房子、这张桌子、这株植物、这张支票、这件雨衣。 概括来说就是:万物皆对象。   面向对象的基本概念   (1)对象。   对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。   (2)对象的状态和行为。   对象具有状态,一个对象用数据值来描述它的状态。   对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。   对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中   (3)类。   具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。   类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。   类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。   (4)类的结构。 4、指男、女朋友   在ASP动态网页中,对象是一个抽象的概念,是要操作的目标。比如,在现实生活中,电脑就是我们搜寻资料的一个对象,他具有外观、操作系统、价格等等特点,这在对象概念中被称为属性,而利用这个电脑玩游戏、看电影、查找资料等用途,这就对应于对象里的方法,另外,主板、CPU、显卡、键盘等等组件,我们可以称作对象的集合。   在ASP动态网页中,对象的特点归结起来有三个:属性、方法、集合。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
戴隐形眼镜对眼睛有哪些伤害?
月经完了一天后过xin生活容易怀孕吗?
我在鹤岗买的火车票,是鹤岗至哈尔滨东站的,
大宋有同姓不能成婚之理吗?起于何时
QQ炫舞下载器限制速度最快的是多少?
感情是相互的句子,有什么人与人之间互相帮助
嘉丰花园地下室停车场在什么地方啊,我要过去
睡不着为什么。
梦幻西游69级升74级需要多少经验?
永恒登录进不去
谁知道6120c多少钱啊!
蜀国52JS打那个副本好?写写位置,一个人打。
鑫众汽车修配地址在哪,我要去那里办事
电脑鼠标如何使用技巧,台式电脑没有鼠标的情
是不是用避孕套就能避免怀孕?
推荐资讯
耳朵进水三天了,都没出来,怎么办?
怎么今天龙之谷打不开
哪里有完整版的9·13sm家族上海演唱会
海味轩香辣蟹地址有知道的么?有点事想过去
博罗县人民法庭司法惠民工作站这个地址在什么
虚伪?面对虚伪该怎么做
怎样才能解除封号
flash鼠标命令怎么搞
WOW 雷利亚·绿树一定要做吗
为什么我有一个好友一给我发消息我就掉线了?
我想买北京现代途胜,能优惠多少钱
希努尔男装在哪里啊,我有事要去这个地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?