我正在尝试在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;
}
}
答案 0 :(得分:1)
因为,receiveTender()
不是String
类的成员。
下面的代码行表示名称为customer
的对象,其String
类型的方法为receiveTender
,参数为String
,即target
。但是,如果你查看String
类,它没有任何名为receiveTender
的方法,这就是原因。它不会编译。
customer.receiveTender(target);
根据您更新的代码,receiveOffer
是Customer
类的成员,这意味着您需要拥有Customer
类的实例才能访问其方法,这意味着它应该< / p>
public void issueOffer(String target, Customer customer) {
customer.receiveOffer(target);
}
答案 1 :(得分:-1)
大多数时候,只有当班级有另一个班级的对象时,一个班级才能与另一个班级说话。继承是为了#34;是一个&#34;关系。上面写的Trader类只有在Trader是一个Robot的情况下才有意义,否则会创建两个独立的类,如Robot和Trader。