首页 > 其他分享 >10.8

10.8

时间:2024-10-16 17:51:51浏览次数:1  
标签:execute int 10.8 操作 Operation public 属性

一. 单选题(共2题,28.5分)

1. (单选题)软件工程的一个独特性是()的变迁。

  • A. 需求到设计、从设计到实现
  • B. 编码到测试、从测试到用户
  • C. 分析到设计、从设计到程序
  • D. 编码到测试、从测试到上线
我的答案: A:需求到设计、从设计到实现;  

2. (单选题)抽象的目的是

  • A. 确定属性和行为的关系
  • B. 获取全部实体属性
  • C. 完成类的设计
  • D. 通过把相关的属性和其他不相关的属性分开
我的答案: D:通过把相关的属性和其他不相关的属性分开;  

二. 多选题(共4题,57.2分)

3. (多选题)Java中的数据类型包括

  • A. 结构类型
  • B. 内置类型
  • C. 原子类型
  • D. 外部类型
我的答案: AB:结构类型; 内置类型;  

4. (多选题)Java中的访问权限包括:

  • A. 私有
  • B. 保护
  • C. 公有
  • D. 包
我的答案: ABCD:私有; 保护; 公有; 包;  

5. (多选题)面向对象常用技术包括:

  • A. 继承
  • B. 封装
  • C. 多态
  • D. 抽象
我的答案: ABCD:继承; 封装; 多态; 抽象;  

6. (多选题)面向对象中常见的类关系包括:

  • A. 共享
  • B. 继承
  • C. 聚合
  • D. 关联
我的答案: BC:继承; 聚合;  

三. 简答题(共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(); 

   } 

 }

标签:execute,int,10.8,操作,Operation,public,属性
From: https://www.cnblogs.com/zzqq1314/p/18470447

相关文章

  • 第五周(10.8-
    代码题:1、给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。题解:如果等于nums[middle],返回middle;否则返回left或者low。2、在排序数组中查找target的开始位置和结束位置。二分法不可能会漏掉正确结果的......
  • 2024.10.8(周二)
    importjava.io.*;importjava.util.*;importcom.fasterxml.jackson.databind.ObjectMapper;importorg.w3c.dom.*;importjavax.xml.parsers.*;importjavax.xml.transform.*;importjavax.xml.transform.dom.DOMSource;importjavax.xml.transform.stream.StreamRes......
  • 2024.10.8(生成算数)
    importjavax.swing.;importjava.awt.;importjava.util.HashMap;importjava.util.HashSet;importjava.util.Random;publicclassMathQuizAppextendsJFrame{privatestaticfinalintQUIZ_TIME=3*60;//3privatestaticfinalintQUESTION_COUNT=40;/......
  • 荣耀 10.8 开发笔试 笔经
    我好像是卷1第一题:完善字符串输入字符串(子串数、子串,形如2abc123456789),子串未满8个则填充0使其总长度达到8个字符,超过8个则分割核心部分:for(Stringpart:parts){//处理每8个字符for(inti=0;i<part.length();i+=8){Stringchunk=part.subs......
  • 【test】2024.10.8
    次大值思路发现性质,对于一个数\[a[i]\%a[j]\lea[i]\]当他取得最大值时\(a[i]<a[j]\)于是对于前&n-1&大的数,他的贡献值就是他本身,所以我们只需要保存第\(n-1\),\(n-2\)大的数就可以。但是此时要注意第\(n\)大的数的贡献值没有计算,由于\(a[n]\%a[n-2]<a[n-2]\),所以如果他要......
  • 10.8
    以下代码的输出结果是什么?intX=100;intY=200;System.out.println("X+Y="+X+Y);System.out.println(X+Y+"=X+Y");为什么会有这样的输出结果?第一条输出结果是:X+Y=100200第二条输出结果是:300=X+Y第一条中“”中输出形式为字符串然后又连接了另一个数字,最终产生了一个字符......
  • 10.8日noip联考总结
    10.8日noip联考总结T1考试的时候没有想到可以快速用组合数进行统计答案,于是在正常的匹配栈里还套了一个\(O(n)\)的统计答案。其实只需要在里面统计个数,在用乘法原理就可以了。括号匹配引导我们使用匹配栈,而需要快速统计答案又可以想到组合计数。T2这题不用输出方案的话就......
  • 10.8学习
    1.CAP★一致性(2PC、3PC、Paxos、Raft)●强一致性:数据库一致性,牺牲了性能ACID:原子性、一致性、隔离性、持久性●弱一致性:数据库和缓存,延迟双删、重试●单调读一致性:缓存一致性,ID或者IP哈希●最终一致性:边缘业务,消息队列★可用性(多级缓存、读写分离)●BASE基本可用:限流导......
  • 10.8
    不知道为什么学习数学相关的东西总会思绪淤塞,心情烦躁,于是狂贺不止跑来写总结。第\(2\)次$NOIP$模拟赛进步了整整\(38pts\),增幅到了\(30.4%\),来到了惊人的\(163pts\)!实际得分\(0+100+63+0\)。A.兰亭序无关风月我题序等你回悬笔一绝那岸边浪千叠情字何解怎......
  • 10.8日
    在今日早上的工程实训中的电工基础实训中学习了不同的触电事故:电击和电伤,对于应对触电事故的措施和急救措施。Js是一种弱编程语言,其中对于声明变量,变量的数据类型有Number,String、boolean、undefined、null等,变量的数据类型取决于变量的值。其中声明变量有两种,let声明在目前使用......