如何在另一个类中设置Java类中的变量

时间:2018-01-12 13:44:47

标签: java object getter-setter setter

我正在尝试在Java中设置一组简单的类,使得特定的Trader类(见下文)可以与其他Robot类对象“对话”,如客户ID所标识,并设置提供变量。

我的初始尝试失败,因为我已将客户定义为String,这就是customer.receiveTender(target)无法工作的原因。但我也尝试过Agent和Customer子类,但它们不起作用。

我对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;
    }

}

2 个答案:

答案 0 :(得分:1)

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

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

customer.receiveTender(target);

根据您更新的代码,receiveOfferCustomer类的成员,这意味着您需要拥有Customer类的实例才能访问其方法,这意味着它应该< / p>

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

答案 1 :(得分:-1)

大多数时候,只有当班级有另一个班级的对象时,一个班级才能与另一个班级说话。继承是为了#34;是一个&#34;关系。上面写的Trader类只有在Trader是一个Robot的情况下才有意义,否则会创建两个独立的类,如Robot和Trader。