在java中如何关联两个对象?
我想知道的是,如何设置一个对象,使其以某种方式对另一个特定对象作出反应 例如:可能有一个名为在java中如何关联两个对象?,java,object,Java,Object,我想知道的是,如何设置一个对象,使其以某种方式对另一个特定对象作出反应 例如:可能有一个名为swordInStone的类,只有当该类的royalty成员试图抓住它时,它才会做出反应。即: public class swordInStone{ if(swordHilt.isPulledBy(royalty.grab)){ releaseSword(); } } 但是在示例代码中,royalty必须是一个命名的活动对象,例如Arthur。我希望能够用类中的任何对象替换它版税
swordInStone
的类,只有当该类的royalty
成员试图抓住它时,它才会做出反应。即:
public class swordInStone{
if(swordHilt.isPulledBy(royalty.grab)){
releaseSword();
}
}
但是在示例代码中,
royalty
必须是一个命名的活动对象,例如Arthur
。我希望能够用类中的任何对象替换它
版税
您可以通过类型检查来实现这一点:
public class Royalty {}
public class Sword {
private Stone stone;
public Sword(Stone stone) {
this.stone = stone;
}
public void grab(Object grabber) {
if (grabber instanceof Royalty)
stone.releaseSword();
}
}
请尝试使用继承,@user3717646您能稍微描述一下吗?我不知道您的意思。您的意思可能是:
grabber.releasebrow()代码>;)@阿尔法辛好吧,也许我们需要一个石头类,让剑告诉石头释放它。或者也许不是剑知道谁是皇室成员或不是皇室成员,剑只是将抓取器传递到石头上,以确定是否释放剑!我们真的需要定义这些类的职责!如果抓取者是皇室的一个子类,会发生什么?@alfasin好吧,现在你已经把事情弄糊涂了,当然,在剑被锻造的时候,它并没有嵌入石头中!我假设石头
是梅林用魔法设定的,当他首先将它击中石头时。@JamieCockburn+1,现在将所有答案颠倒过来,创建剑
,作为石头
的私人成员:D