oop Java访问实例化的对象
我不知道如何访问从该对象实例化对象的类
为清晰起见,示例:
public class A {
B b;
int number = 5;
public A() {
b = new B();
}
}
public class B {
public B() {
System.out.println(/*code to get the value of number*/);
}
}
我不能把number
传递到B
这在java中可能吗
# 1 楼答案
对象本身并不知道它们在哪里被实例化,不知道
也就是说,您可以在子对象中添加对实例化对象的引用。这在电路板实现中很有用,因此平铺或空格可以为邻居等引用电路板对象
例如,如果所有的
B
都由相应的A
实例化,则可以这样修改类:实现相同效果的另一种方法是,如果所有b都在a
A
内构造,则使B
a成为非静态的内部类。这将允许每个B
访问其对应A
的数字字段这显然更简洁,但使
B
成为一个内部类还有其他设计含义,可能适合也可能不适合您的项目但是,如果您不知道实例化对象的类(如果它不总是
A
),那么这两种方法都不起作用。在这种情况下,您可以做的最好的事情是要么将参数设置为构造类型为Object
的B
并根据需要强制转换以获取字段,要么将其设置为实例化类共享的某个接口,并根据需要使用共享行为。下面是一个例子:# 2 楼答案
# 3 楼答案
在像Java这样的面向对象语言中,首先需要提供封装,基本上是将所有的atribute私有,然后使用set传递值,例如,如果你想访问数字,你可以从usend关键字中继承extend,也可以将atribute数字放在B类中,然后你可以这样做类似于a.getB()。setNumber()或getNumber()取决于您想要什么getter用于读取值,setter用于设置值:
然后在B班