找回密码
 立即注册
搜索
热搜: Python Java C Html PHP
查看: 690|回复: 0

程序改错 股票买卖

[复制链接]

42

主题

10

回帖

8

积分

管理员

积分
8

原始用户

发表于 2026-3-16 15:18:38 | 显示全部楼层 |阅读模式

试题3、根据题目描述,使用调试工具进行跟踪调试。

本题分值:45
考核时间:90分钟
考核方式:实操
考核内容:以下Java代码实现了在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。改正代码错误,运行程序。
  1. import java.util.ArrayList;
  2. import java.util.List;

  3. class Stock {
  4.     private String name;
  5.     private int quantity;

  6.     // 修复:构造方法中使用this关键字正确赋值
  7.     public Stock(String name, int quantity) {
  8.         this.name = name;
  9.         this.quantity = quantity;
  10.     }

  11.     public void buy() {
  12.         System.out.println("[买进]:" + name + ",数量:" + quantity);
  13.     }
  14.     public void sell() {
  15.         System.out.println("[卖出]:" + name + ",数量:" + quantity);
  16.     }
  17. }

  18. // 修复:接口方法不能用private修饰,且不能有方法体
  19. interface Order {
  20.     void execute();
  21. }

  22. // 修复:implement -> implements;execute方法中调用stock.buy()
  23. class BuyStock implements Order {
  24.     private Stock stock;
  25.     public BuyStock(Stock stock) {
  26.         this.stock = stock;
  27.     }

  28.     @Override
  29.     public void execute() {
  30.         stock.buy(); // 修正:调用股票对象的buy方法
  31.     }
  32. }
  33. // 修复:implement -> implements
  34. class SellStock implements Order {
  35.     private Stock stock;

  36.     public SellStock(Stock stock) {
  37.         this.stock = stock;
  38.     }
  39.     @Override
  40.     public void execute() {
  41.         stock.sell();
  42.     }
  43. }
  44. class Broker {
  45.     private List<Order> orderList = new ArrayList<Order>();
  46.     // 修复:补充参数类型,add方法传入参数
  47.     public void takeOrder(Order order) {
  48.         orderList.add(order);
  49.     }

  50.     public void placeOrders() {
  51.         for (Order order : orderList) {
  52.             order.execute();
  53.         }
  54.         orderList.clear();
  55.     }
  56. }
  57. public class Modify3 {
  58.     public static void main(String[] args) {
  59.         Stock xStock = new Stock("新能源", 500);
  60.         Stock yStock = new Stock("白酒", 1000);

  61.         Order buyStockOrder = new BuyStock(xStock);
  62.         Order sellStockOrder = new SellStock(yStock);

  63.         Broker broker = new Broker();
  64.         broker.takeOrder(sellStockOrder);
  65.         broker.takeOrder(buyStockOrder);
  66.         broker.placeOrders();
  67.     }
  68. }
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|HELIXABYSS

GMT+8, 2026-7-22 00:54 , Processed in 0.082096 second(s), 27 queries .

Powered by Discuz! X3.5

© 2024-2026 HELIXABYSS

快速回复 返回顶部 返回列表