面向对象思想如何理解面向对象思想

面向对象思想  时间:2021-09-03  阅读:()

什么是面向对象编程的思想

在这里,万事万物皆对象把现实世界中的每一个物体都看作一个对象,每个对象都有固有的属性和方法,比如把人看作一个对象,属性有:眼睛鼻子啥的,而方法有:吃穿住行等。

而面向对象最主要的特点是:封装,继承,多态封装,就把所有的属性都放置在一个固定的地方,然后提供一个接口供你使用,而你只能够使用这些属性,而不用知道它们是如何的定义的。

继承,就像儿子从父亲那里继承遗产或者其他什么东西一样的,如果子类继承自父类,那他不仅有父类的属性和方法,也拥有自己的属性和方法多态:主要讲的是重写和重载(这两者的区别查查百度),主要是讲子类如何使用父类的方法,重载就好象,父亲教给孩子种地的方法,孩子学会之后,改变其中的某一些条件来操作,但还没有离开父亲所教的方法,而重写则是孩子干脆发明或者引用一种新的方法来种地总之:

什么是面向对象的程序设计思想

面向对象 面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。

面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。

如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

谈到面向对象,这方面的文章非常多。

但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。

其初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。

可是,这个定义显然不能再适合现在情况。

面向对象的思想已经涉及到软件开发的各个方面。

如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。

许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。

看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。

这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。

面向对象是当前计算机界关心的重点,它是90年代软件开发方法的主流。

面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。

如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

一、传统开发方法存在问题 1.软件重用性差 重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。

软件重用性是软件工程追求的目标之一。

2.软件可维护性差 软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。

在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。

实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。

3.开发出的软件不能满足用户需要 用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。

用结构化方法开发的软件,其稳定性、可修改性和可重用性都比较差,这是因为结构化方法的本质是功能分解,从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,这样一层一层的分解下去,直到仅剩下若干个容易实现的子处理功能为止,然后用相应的工具来描述各个最低层的处理。

因此,结构化方法是围绕实现处理功能的“过程”来构造系统的。

然而,用户需求的变化大部分是针对功能的,因此,这种变化对于基于过程的设计来说是灾难性的。

用这种方法设计出来的系统结构常常是不稳定的 ,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大代价才能实现这种变化。

二、面向对象的基本概念 (1)对象。

对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

(2)对象的状态和行为。

对象具有状态,一个对象用数据值来描述它的状态。

对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。

对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中 (3)类。

具有相同或相似性质的对象的抽象就是类。

因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。

类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。

类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

(4)类的结构。

在客观世界中有若干类,这些类之间有一定的结构关系。

通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。

①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。

②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。

(5)消息和方法。

对象之间进行通信的结构叫做消息。

在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。

发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。

一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。

类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。

消息传递如图10-1所示。

二、面向对象的特征 (1)对象唯一性。

每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。

在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。

(2)分类性。

分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。

一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。

任何类的划分都是主观的,但必须与具体的应用有关。

(3)继承性。

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。

在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。

在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。

在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。

在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。

采用继承性,提供了类的规范的等级结构。

通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。

(4)多态性(多形性) 多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。

不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息。

多态性增强了软件的灵活性和重用性。

/z/q814094942.htm?si=2 对象,强调物体属性, 比如实现逻辑 物体A 移动到B点, 对象思想就是要你想象 你吧A 看成什么 你可以吧它看成车, 用车轮的方式(方法)让它走动, 可以看成托运(方法)的方式拉过去。

面向对象的方法 是一类物体的属性 所具备的 行为,理论上 可以参照面向过程的函数去理解 儿面向过程, 我不关心你用什么方式,看成什么 ,管你是推,是拽,只要你运过来就行 相对而言 没有针对性 楼主可以 设想一下网络游戏, 你玩的游戏 的怪物, 是分种类的, 他们都是自动的东西, 没人去手动生成, 一类怪物 有一类招数和样子, 行为属性, 这就是对象思想

什么是面向对象思想,优点是什么?

C语言是面向过程的一种编程语言,相对应的C++是一种面向对象的编程语言。

面向过程与面向对象各有优劣,各有侧重点。

只不过面向对象是一种趋势(当然也与其优点有关),这或许受到以人为本的思想影响,每一个程序都以某一个对象为基本出发点,结构与层次更清晰,也更复杂一些(与面向过程相比)。

什么是面向对象思想

以前的面向过程是一步步做的 比如让一只动物动起来 你可以写 run() 但是后来老板说这个动物还会飞 那么 很难再加上fly(),因为很多不能改写了 面向对象就是 写父类 动物 再写子类 他可以 run() 以后再想加点东西 如 fly 就直接加到子类 很方便 面向对象思想不止这个 还有好多要自己理会了。

面向对象编程的思想是什么?

对象是类的实例的意思 面向对象 面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。

它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。

这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。

它可以有不同层次的理解: 从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界。

因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。

这样建立起来的系统才能符合现实世界的本来面目。

从方法学的角度可以认为:面向对象的方法是面向对象的世界观在开发方法中的直接运用。

它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。

从程序设计的角度来看,面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。

这些程序设计语言可以归纳为以下几类:系统中一切皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。

如何理解面向对象思想

我理解的面向对象就是把某事物的特点和功能都抽象出来封装成一个类,由这个类来创建具体的对象,比如我们可以把狗封装成一个类,狗有的特点比如有毛,腿,眼睛,耳朵(这个相当于类的成员变量),狗的功能呢比如会叫,咬人(这个就相当于类的成员函数),具体要要用的时候呢,可以根据这个狗(类)来创建小白,小黑,小花等具体的狗(对象)。

青果云(59元/月)香港多线BGP云服务器 1核 1G

青果云香港CN2_GIA主机测评青果云香港多线BGP网络,接入电信CN2 GIA等优质链路,测试IP:45.251.136.1青果网络QG.NET是一家高效多云管理服务商,拥有工信部颁发的全网云计算/CDN/IDC/ISP/IP-VPN等多项资质,是CNNIC/APNIC联盟的成员之一。青果云香港CN2_GIA主机性能分享下面和大家分享下。官方网站:点击进入CPU内存系统盘数据盘宽带ip价格购买地...

创梦网络-江苏宿迁BGP云服务器100G高防资源,全程ceph集群存储,安全可靠,数据有保证,防护真实,现在购买7折促销,续费同价!

官方网站:点击访问创梦网络宿迁BGP高防活动方案:机房CPU内存硬盘带宽IP防护流量原价活动价开通方式宿迁BGP4vCPU4G40G+50G20Mbps1个100G不限流量299元/月 209.3元/月点击自助购买成都电信优化线路8vCPU8G40G+50G20Mbps1个100G不限流量399元/月 279.3元/月点击自助购买成都电信优化线路8vCPU16G40G+50G2...

HyperVMart:加拿大vps,2核/3G/25G NVMe/G口不限流量/季付$10.97,免费Windows系统

hypervmart怎么样?hypervmart是一家成立了很多年的英国主机商家,上一次分享他家还是在2年前,商家销售虚拟主机、独立服务器和VPS,VPS采用Hyper-V虚拟架构,这一点从他家的域名上也可以看出来。目前商家针对VPS有一个75折的优惠,而且VPS显示的地区为加拿大,但是商家提供的测速地址为荷兰和英国,他家的优势就是给到G口不限流量,硬盘为NVMe固态硬盘,这个配置用来跑跑数据非常...

面向对象思想为你推荐
php文件php 格式文件 怎么打开?急!!!网络限速软件有什么比较好的网络限速的软件sg什么意思篮球中 SF PF SG PG各是什么位置阿电商网站设计电商网站设计需要注意哪些黑屏操作电脑一操作就黑屏 不操作就没有事。该怎么恢复海淀区公司注册北京海淀培训公司注册如何办理?无线互联网手机连接无线显示无互联网连接是怎么回事安全网络攻防大赛听说黑客大赛结果 360最厉害 18个人没有一个攻破 腾讯30秒被攻破 然后是金山 是不是真fshow为什么日文里面还有很多中文?3g模块3G模块是啥意思?
vps论坛 草根过期域名 idc评测 免费网站监控 火车票抢票攻略 php探针 警告本网站 轻量 大容量存储 湖南服务器托管 中国智能物流骨干网 空间出租 免费高速空间 免费申请网站 百度云1t metalink 微软服务器操作系统 idc查询 移动服务器托管 美国盐湖城 更多