You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java入门问题:Garaz类方法无法获取Samochod实例的自定义属性值

解决Garaz类wypiszInfo输出Samochod默认属性值的问题

问题根源

你的问题出在Garaz类的wprowadzSamochod方法中——该方法没有正确存储你在main里创建的Samochod实例,反而在方法内部新建了一个使用默认构造器初始化的Samochod对象,所以wypiszInfo输出的是这个新对象的默认属性值(如marka="nieznany"),而非Fiat、126p这类自定义值。

修正代码示例

1. 修正Garaz类的wprowadzSamochod方法

public class Garaz {
    private Samochod parkedCar; // 存储入库车辆的成员变量

    // 修改方法,接收外部传入的Samochod实例
    public void wprowadzSamochod(Samochod carToPark) {
        // 直接引用传入的实例,而非新建默认对象
        this.parkedCar = carToPark;
    }

    public void wypiszInfo() {
        if (parkedCar != null) {
            System.out.println("Marka: " + parkedCar.getMarka());
            System.out.println("Model: " + parkedCar.getModel());
            // 按需添加其他属性的输出
        } else {
            System.out.println("Garaz jest pusty");
        }
    }
}

2. 确保Samochod类有正确的构造器和getter

public class Samochod {
    private String marka;
    private String model;

    // 带参数的构造器,用于初始化自定义属性
    public Samochod(String marka, String model) {
        this.marka = marka;
        this.model = model;
    }

    // 默认构造器(保留的话,属性用默认值初始化)
    public Samochod() {
        this.marka = "nieznany";
        this.model = "nieznany";
    }

    // getter方法,供Garaz类读取属性
    public String getMarka() {
        return marka;
    }

    public String getModel() {
        return model;
    }
}

3. Main函数的正确调用

public class Main {
    public static void main(String[] args) {
        Samochod s1 = new Samochod("Fiat", "126p");
        Samochod s2 = new Samochod("Volkswagen", "Golf");

        Garaz garaz = new Garaz();
        garaz.wprowadzSamochod(s1);
        garaz.wypiszInfo(); // 输出Marka: Fiat, Model: 126p

        garaz.wprowadzSamochod(s2);
        garaz.wypiszInfo(); // 输出Marka: Volkswagen, Model: Golf
    }
}

关键说明

  • 核心修正:让wprowadzSamochod接收外部传入的Samochod实例,直接将该实例赋值给Garaz的成员变量,这样存储的就是你在main里初始化的自定义对象。
  • 必须保证Samochod类提供getter方法,否则Garaz类无法访问其私有属性;同时使用带参数的构造器创建自定义属性的车辆实例。

内容的提问来源于stack exchange,提问作者Mazureekk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 16:25:21