一、java面向对象编程-面向对象开发方法概述

一、请简述软件开发的生命周期?

答:软件分析-设计-编码-测试-部署-维护。

软件分析:分析问题领域,了解用户需求;

软件设计:确定软件的总体架构,把整个软件系统划分为大大小小的多个子系统,设计每个子系统的具体结构;

软件编码:用选定的编程语言来编写程序代码;

软件测试:是否实现特定的功能,以及测试软件的运行性能;

软件部署:为用户安装软件系统,帮助用户正确的使用软件;

软件维护:当用户需求发生变化时,修改相应的软件。

二、请问一个优良的软件系统应该具备什么特点?

答:可重用性-可扩展性-可维护性。

可重用性:减少软件中的重复代码,避免重复编程;

可扩展性:当软件必须增加新的功能时,能够在现有系统结构的基础上,方便地创建新的子系统,不需要改变软件系统现有的结构,也不会影响已经存在的子系统。

可维护性:当用户需求发生变化时,只需要修改局部的子系统的少量代码,不会牵一发而动全身,修改软件系统中多个子系统的程序代码。

三、请问软件中的子系统具有什么特点?

答:结构稳定性-可扩展性-内聚性-可组合性-松耦合性。

四、请问在软件开发领域中有哪些主流的开发方法?

答:结构化开发(面向过程开发)和面向对象开发。

五、请你简述一下你对结构化软件开发的认识?

答:结构化开发方法首先用结构化分析对软件进行需求分析,然后用结构化设计方法进行总体设计,最后是结构化编程。

结构化开发方法主要是按照功能来划分软件结构的,它把软件系统的功能看作是根据给定的输入数据,进行相应的计算,然后输出结果。

进行结构化设计时,结构化设计属于自顶向下的设计,首先考虑整个软件系统的功能,然后按照模块划分的一些基本原则,对功能进行分解,把整个软件系统划分成多个模块,每个模块实现特定的子功能。在完成所有的模块设计后,把这些模块拼接起来,就构成了整个软件系统。软件系统可看作是多个子系统的集合,每个子系统都是具有输入/输出功能。

在进行结构化编程时,程序的主体是方法,方法是最小的功能模块,每个方法都具有输入/输出功能的子系统,方法的输入数据来自方法参数、全局变量和常量。方法的输出数据包括方法返回值,以及指针类型的方法参数。一组相关的方法组合成大的功能模块。

六、请你简述一下结构化软件开发的缺点及其根本原因?

答:缺点:制约了软件的可维护性和可扩展性,模块之间的松耦合性不高,修改或增加一个模块,会影响到其他的模块。

原因:①自顶向下地按照功能来划分软件模块,而软件的功能不是一成不变的,会随着用户的需求变化而变化,这使得软件在设计阶段就难以设计出稳定的系统结构。

②软件系统中最小的子系统是方法。方法和一部分与之相关的数据分离,全局变量数据和常量数据分散在系统的各个角落,这消弱了各个系统之间的相对独立性,从而影响了软件的可维护性。

七、请简述一下面向对象的软件开发方法?

答:面向对象的开发方法把软件系统看成是各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。

面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。

八、请简述面向对象开发方法具有哪些优点?

答:①把软件系统看成是各种对象的集合,这更接近人类认识世界的自然思维方式。

②软件需求的变动往往是功能的变动,而功能的执行者-对象一般不会有大的变化。

③对象包括属性和行为,对象把数据及方法的具体实现方式一起封装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。

④支持封装、抽象、继承和多态等各种特征,提高了软件的可重用性、可维护性和可扩展性。

九、请简述一下对象具有哪些特性?

答:①万物皆对象。

②每个对象都是唯一的。

③对象具有属性和行为。

④对象具有状态。

⑤对象都属于某个类,每个对象都是某个类的实例。

十、请简述一下你对类的理解?

答:类是一组具有相同属性和行为的对象的抽象。

十一、请你简述一下你对接口的理解?

答:①指系统对外提供的所有服务,在对象中表现为public类型的方法的声明。

②指用interface关键字定义的实实在在的接口,也称为接口类型,它用于明确的描述系统对外提供的服务,它能够更加清晰地把系统的实现细节与接口分离。

十二、请你简述一下你对封装的理解和封装的优点?

答:封装是指隐藏对象的属性和实现细节,仅仅对外公开接口。

①便于使用者正确、方便的理解和使用系统,防止使用者错误修改系统的属性;

②有助于建立各个系统之间的松耦合关系,提高系统的独立性。

③提高软件的重用性,每个系统都是一个相对独立的整体,可以在多种环境中得到重用。

④降低了构建大型系统的风险,即使整个系统不成功,个别的独立子系统有可能依然是有价值的。

十三、请你简述一下你对抽象的理解?

答:①抽象是一种由具体到抽象、由复杂到简洁的思维方式。

②可以用来修饰类和方法。

当一个方法被abstract修饰时,表明这个方法没有具体的实现;

当一个类被abstract修饰时,表明这个类不能被实例化。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值