在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