在Java中,是否可以在另一个类中使用类的元素/函数?

时间:2018-04-16 02:47:00

标签: java awt

假设我有一个类Foo.java和一个类Bar.java。它们属于同一个包装。

Say Foo.java看起来像这样:

public class Foo {
    public Foo () {
        //insert awt graphics shape here
    }
}

Bar.java看起来像这样:

public class Bar {
    public Bar () {
        //filler
    }
}

对于Bar.java,有没有办法访问在Foo.java中创建的形状?

2 个答案:

答案 0 :(得分:0)

如果元素/函数是静态的:

public class foo {
  static int fooElement = 0;
  static void bar () {
    //insert awt graphics shape here
  }
  static void accessBarElementNFunction() {
    bar.barElement = 1;
    bar.foo();
  }

}

public class bar {
  static int barElement = 0;
  static void foo () {
    //filler
  }
  static void accessFooElementNFunction() {
    foo.fooElement = 1;
    foo.bar();
  }

}

否则,您需要创建和管理类实例。

答案 1 :(得分:0)

你的问题的答案是肯定的,你可以。你可能可以通过组合来实现这一点。例如:

public class Foo {
    private Bar bar = new Bar();

    public Foo () {
        this.bar.getSomeVal();
    }
}

public class Bar {
    private int someVal;
    public Bar () {
        this.someVal = 10;
    }

    public int getSomeVal() { // this is just an example method.
        return this.someVal;
    }
}

如上所示,Foo类包含Bar类的实例。使用该实例,我可以在Foo的构造函数中访问Bar类的成员。

您可以通过拥有Foo类的实例在Bar类中遵循相同的方法。

您还可以选择使用静态方法,例如:

public class Foo {
    public Foo () {
        System.out.println(Bar.getSomeVal());
    }
}

public class Bar {
    private static int someVal;
    public Bar () {
    }

    public stating int getSomeVal() { // this is just an example static method.
        return Bar.someVal;
    }
}