面向对象的阅读理解-(1)

本文深入探讨了面向对象编程的核心概念,包括对象、类、继承性、多态性和封装体,阐述了其在软件开发中的优势,如提高编程效率、提升代码可维护性和重用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是面向对象:

面向对象是一种对现实世界理解和抽象的方法,通过面向对象的方式,将现实世界的物抽象成对象,现实世界中的关系抽象成类、继承,对复杂的系统进行分析、设计与编程;同时可以提高编程的效率,通过封装技术与消息机制可以快速的开发出一个全新的系统,面向对象是指的一种程序设计范型,也是一种开发方法,对象是类的集合,它将对象作为程序的基本单元,将程序和数据封装其中,以达到提高软件的重用、灵活和扩展性;

面向对象所涉及的软件开发方面:
    面向对象分析(OOA:Object Oriented Analysis)
    面向对象的设计(OOD:Object Oriented Design)
    面向对象的编程实现(OOP: Object Oriented Programming)
面向对象程序设计中的每一个对象都应该能接受数据、处理数据并将数据传达给其他对象。

结构化设计方法求解问题的基本策略是从功能的角度审视问题域,它将程序看成是实现某些特定任务的功能模块,其中子过程是实现某项具体操作的底层功能模块,在每个模块中用数据结构描述待处理数据的组织形式,用算法描述具体的操作过程;

结构化设计方法的缺点:
客体:
客观存在的对象实体和主观抽象的概念,是人类观察问题和解决问题的主要目标,每个客体都具有一些属性和行为,所以每个客体都可以用属性和行为来描述;
百度文档解释'客体':
与主体存在着关系的一切是为客体。客体是与主体存在着关系的全部。
客体是相对于主体而言的。处于客体的事物,当作为某一具体事物本身的时候,就成了事物主体,其它与之处于关系的物,就变成了客体。处于主体的事物,作为其它事物的关系面出现的时候,就成了客体。

通常人类观察问题的视觉是客体,客体的属性反映了客体在某一时刻的状态,客体的行为反映了客体多能(多方面才能或功能)从事的操作,这些操作附加在客体之上,并能用来设置、改变和获取客体的状态。结构化设计方法所采用的设计思路不是将客体作为一个整体,而是将依附于客体之上的行为抽取出来,以功能为目标来设计并构造应用系统,这样做导致程序在设计时不得不将客体所构成的显示世界映射到由功能模块组成的解空间中,这样的变换增加了程序设计的复杂程度,而且背离了人们观察问题和解决问题的基本思路;在任何一个问题域中,客体是稳定的,而行为并不稳定,结构化设计方法将审视问题的视觉定位于不稳定的操作之上,并且将客体的属性和行为分开,使得应用程序的维护和扩展相当的困难,由于问题的不断扩大、环境越来越需复杂、需求变化加快,彻底改变软件设计方法的迫在眉睫,所以面向对象应运而生;

自理解'客体:
焦点问题,比如一个杯子,将焦点放到杯子身上的时候,杯子成为了主体,它的功能(装东西)与属性(大小/颜色/价格等)则成了客体;当焦点放到杯子的主人身上的时候,主人成了主体,杯子则成了客体;此逻辑是观察和解决问题的最基本的方式;
程序里的客体和主体关系:所有问题与需求可视为主体,而整个程序(解决方案)可视为客体;

抽象级别
抽象是人解决问题的基本方式,良好的抽象策略可以控制问题的复杂程度,增强系统的通用性和可扩展性,抽象主要包括过程抽象和数据抽象,结构化设计方法应用的是过程抽象,所谓过程抽象是将问题域中具有明确功能定义的操作抽取出来,并将其作为一个实体看待.这种抽象级别对于软件系统结构的设计显得有些武断,并且稳定性差,导致很难准确无误的设计出系统的每一个操作环节,一旦某个客体的属性表示方式发生了变化,就有可能牵扯到已有系统的很多问题,而数据抽象是较过程抽象更高级别的抽象方式;将描述客体的属性和行为绑定在一起,实现统一的抽象,从而达到对现实世界客体的真正模拟;

封装体:
封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内,该逻辑单元负责将所描述的属性隐藏起来,外界对客体内部属性的所有访问只能通过提供的用户接口实现,这样做既可以实现对客体属性的保护作用,有可以提高软件系统的可维护性.只要用户接口不改变,任何封装体内部的改变都不会对软件系统的其他部分造成影响.

可重用性:
可重用性标示着软件产品的可复用能力,是衡量一个软件产品成功与否的重要标志;人们越来越最求开发更多的/更有具有通用性的可重用构件,从而使软件开发过程彻底改善,从过去的语句级编写发展到现在的构件组装,从而提高软件开发效率,推动行业领域的迅速扩展,但是结构化程序设计方法的基本单位是模块.每个模块只是实现特定功能,因此,它的可重用单位只能是模块,这些模块对于今天的软件开发来说重用力度是微不足道的,而且当参与操作的某些数据类型发生变化时就不能够在使用那些模块了;所以,渴望更大力度的可重用构件是如今应用领域对软件开发提出的新需求;

面向对象由此诞生;


基本概念:
1)对象:

对象是人们要进行研究的任何事物,从最简单的整数到复杂的分级等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则/计划或事件;
2)对象的状态和行为:
对象具有状态,一个对象用数据值来描述它的状态.对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为;
3)类:
具有 相同特性和行为的对象 的抽象 就是类.对象的抽象是类,类的具体化就是对象,也就是说类的实例是对象,类实际就是一种 数据类型;
类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性;
类具有操作,它是对象的行为的抽象,用操作名和事项该操作的方法来描述;
4)类的结构:
在客观世界中有很多类,这些类之间有一定的结构关系.通常有两种主要的结构关系:
一般-->具体 结构关系,被称为分类结构,也可以说是"或"关系,或者"is a"关系;
整体-->部分 结构关系,被称为组装结构,他们之间的关系式一种"与"关系,或者是 "has a"关系;
5).消息和方法:
对象之间进行通信的结构叫做消息,在对象的操作中当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息;发送一条消息至少要包括说明接收消息的对象名/发送给该对象的消息名(对象名或方法名).一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名或者是所有对象都知道的全局变量名;类中操作的实现过程叫做方法,一个方法有方法名,返回值,参数,方法体;

特征:
1).对象唯一性:

每个对象都有属于自己的一个标志,就好比身份证号码一样,对象的标志不可重复,通过这个标志就可以找到相应的对象,标志在对象的整个生命周期中都不可发生改变;
2).抽象性:
抽象性是指将具有一致数据和行为的对象抽象成类,一个类就是这样一种抽象(类就是这不同对象之间的共性),类反映了与应用有关的重要性质,而忽略了其他一些无关内容,类的划分都是主观的,但是必须与实际应用有关.
3).继承性:
继承性是指子类共享父类数据结构和方法的机制,这是类与类之间的一种关系,可以在已有类的基础之上来进行定义和实现一个新类,将已存在的类所定义的内容作为自己的内容,同时可以加入新的属性和行为;类的继承使软件具有可扩充性和开放性,这是信息组织和分类的高效方法,继承特性简化了对象以及类的创建工作,同时也增加了代码的复用性;采用继承特性提高了类规范的等级结构,通过类的与类之间的继承关系,使公共的特性能够共享,提高了代码的重用性.
4).多态性:
多态性是指相同的操作/函数或者过程可以作用于不同类型的对象之上,并获取到不同的结果,不同的对象收到同样的消息(命令)可以产生不同的结果,多态特性允许每个对象以适合自身的方式去响应共同的消息;多态性增加了软件的灵活性和重用性;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值