[英]As java doesn't have referencing, how does one pass information between two separate classes?
非常抱歉,我确实不知道如何命名此问题。 如果有人有更好的选择,请随时编辑。 关于我的问题
public class Foo()
{
String name;
public Foo()
{
Bar temp = new Bar();
}
}
public class Bar()
{
public Bar()
{
setFooName("newName");
}
public void setFooName(String name)
{
// Is it possible call a method in Foo?
}
}
public class test {
static public void main(String[] args)
{
Foo foobar = new Foo();
}
}
我对Java还是很陌生,所以我不确定这是否可能,但是使用C ++时,通常会在'Boo'类中使用'Foo'的局部变量,然后将对该对象的引用传递给Bar的构造函数,然后将其分配给Bar中的局部变量。
由于java没有引用,因此我对此事感到困惑。 我要这样做的原因是我拥有的示例是我需要在类内部创建一个GUI对象,然后将来自GUI对象的信息发送回创建它的类中。
我确实希望一切都有意义,如果没有,对不起。
我认为您正在陷入困境。
以下示例通过Bar
的构造函数将Foo
引用的副本传递给Bar
。 现在,这使Bar
可以访问Foo
实例的属性。 它不允许您做的是在两个引用之间进行更改(即在bar中分配新的Foo
引用不会更改先前的引用)
public class Foo()
{
String name;
public Foo()
{
Bar temp = new Bar(this);
}
}
public class Bar()
{
private Foo foo;
public Bar(Foo foo)
{
this.foo = foo;
setFooName("newName");
}
public void setFooName(String name)
{
// Is it possible call a method in Foo?
}
}
public class test {
static public void main(String[] args)
{
Foo foobar = new Foo();
}
}
然后Bar
可以调用Foo
提供的任何修饰符,并且它将为每个引用该实例的人更改Foo
那些单独属性...
我希望这接近您的要求:P
实际上,您可以使用Java执行此操作。 Java有引用,但没有指针。 令人困惑的是,对于C ++爱好者,这些引用可以为null。
这意味着您当然可以执行以下操作:
public class Bar {
private Foo foo;
public Bar(Foo foo) {
this.foo = foo;
}
public setFooName(String name) {
foo.setName(name);
}
}
public class Foo {
private String name;
public Foo() {
Bar temp = new Bar(this);
temp.setFooName("fooname");
}
}
但在这种情况下,我不确定为什么您不会只写:
public class Foo {
private String name;
public Foo() {
this.name = "fooname";
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.