我想创建一个类A,其中一个实例变量是一个由类B的对象组成的数组。是否可以通过类A访问类B的方法,因此可以执行以下操作:
classA.classB[0].getSth()
或者有没有其他方法可以通过A类访问B类中的方法?
答案 0 :(得分:0)
只要类A
公开B[]
实例(使用适当的访问修饰符或通过getter),任何OOP语言(此处为Java)都允许以您提到的方式提供访问权限
请看下面的示例:
public class ObjectAcces {
public static void main(String[] args) {
B[] bs = {new B(1), new B(2), new B(3), new B(4)};
A a = new A(bs);
System.out.println("** Printing All Values **");
a.printAll();
System.out.println("** Printing Specific Value **");
a.bs[0].print();
}
}
class A {
B[] bs;
public A(B[] bs) {
super();
this.bs = bs;
}
void printAll() {
Arrays.stream(bs).forEach(b -> b.print());
}
}
class B {
private int val;
public B(int val) {
super();
this.val = val;
}
void print() {
System.out.println("Val: " + val);
}
}
答案 1 :(得分:0)
是的。要记住的最重要的是访问修饰符。为了能够致电a.b[0]
,您必须将b
打包为私人或公开。
public class A {
B[] b;
}
public class B {
public void sayHi() {
System.out.println();
}
}
public class Main {
public static void main(String...args) {
A a = new A()
B b1 = new B(), b2 = new B(), b3 = new B();
a.b = {b1,b2,b3};
a.b[0].sayHello();
}
}