|
试题3、根据题目描述,使用调试工具进行跟踪调试。 本题分值:45分 考核时间:90分钟 考核方式:实操 考核内容:以下Java代码实现了在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。改正代码错误,运行程序。 - import java.util.ArrayList;
- import java.util.List;
- class Stock {
- private String name;
- private int quantity;
- // 修复:构造方法中使用this关键字正确赋值
- public Stock(String name, int quantity) {
- this.name = name;
- this.quantity = quantity;
- }
- public void buy() {
- System.out.println("[买进]:" + name + ",数量:" + quantity);
- }
- public void sell() {
- System.out.println("[卖出]:" + name + ",数量:" + quantity);
- }
- }
- // 修复:接口方法不能用private修饰,且不能有方法体
- interface Order {
- void execute();
- }
- // 修复:implement -> implements;execute方法中调用stock.buy()
- class BuyStock implements Order {
- private Stock stock;
- public BuyStock(Stock stock) {
- this.stock = stock;
- }
- @Override
- public void execute() {
- stock.buy(); // 修正:调用股票对象的buy方法
- }
- }
- // 修复:implement -> implements
- class SellStock implements Order {
- private Stock stock;
- public SellStock(Stock stock) {
- this.stock = stock;
- }
- @Override
- public void execute() {
- stock.sell();
- }
- }
- class Broker {
- private List<Order> orderList = new ArrayList<Order>();
- // 修复:补充参数类型,add方法传入参数
- public void takeOrder(Order order) {
- orderList.add(order);
- }
- public void placeOrders() {
- for (Order order : orderList) {
- order.execute();
- }
- orderList.clear();
- }
- }
- public class Modify3 {
- public static void main(String[] args) {
- Stock xStock = new Stock("新能源", 500);
- Stock yStock = new Stock("白酒", 1000);
- Order buyStockOrder = new BuyStock(xStock);
- Order sellStockOrder = new SellStock(yStock);
- Broker broker = new Broker();
- broker.takeOrder(sellStockOrder);
- broker.takeOrder(buyStockOrder);
- broker.placeOrders();
- }
- }
复制代码
|