如何从另一个 class Java class 中设置变量

How to set variable within Java class from within another class

我正在尝试在 Java 中设置一组简单的 classes,这样特定的交易者 class(见下文)可以 'talk' 到其他机器人 class 对象,由客户 ID 标识,并在其中设置报价变量。

我的初始尝试失败了,因为我将 customer 定义为字符串,这就是 customer.receiveTender(target) 不起作用的原因。但我也试过 Agent 和 Customer subclass 但它们不起作用。

我是 Java 的新手 - 谁能给我指出正确的方向?

public class Trader extends Robot {

    private String target;

    public String selectTarget(String target) {
        target = target;
    }

    public void issueOffer(String target, String customer) {
        customer.receiveOffer(target);
    }

}

更新:

public class Robot {

    private String id;  

    public Robot() {
        id = "No name yet";
    }

    public void setID (String newID) {
        id = newID;
    }

    public String getID() {
        return id;
    }

}

public class Customer extends Robot {

    private String target;

    public void receiveOffer(String target) {
        target = target;
    }

}

大多数时候,只有当 class 拥有另一个 class 的对象时,一个 class 才能与另一个 class 交谈。 "is a" 关系中出现了继承。上面写的 Trader class 只有当 Trader 是机器人时才有意义,否则创建两个单独的 classes 作为 Robot 和 Trader。

因为,receiveTender() 不是 String class 的成员。

以下代码行表示名称为 customer 的对象,其类型为 String,方法为 receiveTender,参数为 String,即 target .但是,如果您查看 String class,它没有任何名称为 receiveTender 的方法,这就是原因。它不会编译。

customer.receiveTender(target);

根据您更新的代码,receiveOfferCustomer class 的成员,这意味着您需要 Customer class 的实例才能访问它的方法,这意味着它应该是

public void issueOffer(String target, Customer customer) {
    customer.receiveOffer(target);
}