一. 单选题(共2题,28.5分)
1. (单选题)软件工程的一个独特性是()的变迁。
- A. 需求到设计、从设计到实现
- B. 编码到测试、从测试到用户
- C. 分析到设计、从设计到程序
- D. 编码到测试、从测试到上线
2. (单选题)抽象的目的是
- A. 确定属性和行为的关系
- B. 获取全部实体属性
- C. 完成类的设计
- D. 通过把相关的属性和其他不相关的属性分开
二. 多选题(共4题,57.2分)
3. (多选题)Java中的数据类型包括
- A. 结构类型
- B. 内置类型
- C. 原子类型
- D. 外部类型
4. (多选题)Java中的访问权限包括:
- A. 私有
- B. 保护
- C. 公有
- D. 包
5. (多选题)面向对象常用技术包括:
- A. 继承
- B. 封装
- C. 多态
- D. 抽象
6. (多选题)面向对象中常见的类关系包括:
- A. 共享
- B. 继承
- C. 聚合
- D. 关联
三. 简答题(共1题,14.3分)
7. (简答题)请根据面向对象的设计思想,对加减法混合软件进行类的设计。请提交类的设计思路,包括:都需要哪些类,每个的属性和方法都包括哪些,给出类的源代码。
- 我的答案:
-
类设计思路 Operation(操作类):这是一个抽象类,用于定义加法和减法操作的共同接口。
属性:无 方法:execute(): 抽象方法,用于执行具体的操作(加法或减法)。
Addition(加法类):继承自Operation类,实现加法操作。
属性:无
方法:execute(int a, int b): 执行加法操作,返回结果。
Subtraction(减法类):继承自Operation类,实现减法操作。
属性:无
方法:execute(int a, int b): 执行减法操作,返回结果。
Calculator(计算器类):这个类用于管理操作,并允许用户执行加法和减法。
属性:List<Operation> operations: 存储操作对象的列表。
方法:addOperation(Operation op): 添加一个操作到列表中。
calculate(): 遍历操作列表,执行每个操作,并返回总结果。
reset(): 清空操作列表。
类的源代码
// Operation.java
abstract class Operation {
// 抽象方法,用于执行具体的操作
public abstract int execute(int a, int b);
}
// Addition.java
class Addition extends Operation {
@Override
public int execute(int a, int b) {
return a + b;
}
}
// Subtraction.java
class Subtraction extends Operation {
@Override
public int execute(int a, int b) {
return a - b;
}
}
// Calculator.java
import java.util.ArrayList;
import java.util.List;
class Calculator {
private List<Operation> operations = new ArrayList<>();
private int total = 0;
// 添加一个操作到列表中
public void addOperation(Operation op) {
operations.add(op);
}
// 遍历操作列表,执行每个操作,并返回总结果
// 注意:这里假设每次只传入两个操作数,并且连续执行
// 在实际应用中,可能需要更复杂的状态管理
public int calculate(int a, int b) {
total = 0;
// 重置总结果
for (Operation op : operations) {
total = op.execute(total, (operations.indexOf(op) % 2 == 0 ? a : b));
// 这里简单模拟了交替使用a和b作为操作数
// 实际应用中需要根据具体需求调整逻辑
}
// 注意:这个简单的实现逻辑可能不符合所有加减法混合运算的场景
// 它只是为了演示类的设计和使用 return total;
}
// 清空操作列表
public void reset() {
operations.clear();
total = 0;
}
}
// 测试代码(可以在main方法中测试)
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
// 添加加法操作
calculator.addOperation(new Addition());
// 添加减法操作
calculator.addOperation(new Subtraction());
// 执行计算(这里假设初始值为5和3,并且按照添加操作的顺序执行)
// 注意:这个简单的例子可能无法正确处理复杂的加减法混合运算
// 它只是为了演示类的基本使用
int result = calculator.calculate(5, 3);
// 输出结果
System.out.println("Result: " + result);
// 输出可能不符合预期,因为逻辑简单
// 重置计算器
calculator.reset();
}
}