Java 如何使两个类引用同一对象及其方法
因此,我试图使我创建的对象具有与第二个类中的对应对象相同的变量和方法,而不使用静态方法等。我能想到的最好方法可能是使用类似以下内容的方法:Java 如何使两个类引用同一对象及其方法,java,class,object,methods,reference,Java,Class,Object,Methods,Reference,因此,我试图使我创建的对象具有与第二个类中的对应对象相同的变量和方法,而不使用静态方法等。我能想到的最好方法可能是使用类似以下内容的方法: public void setObjectReference(Object object){ object = this.object; } 我的问题是我想在类之间引用一些对象,这种方法意味着我必须用不同的this.object创建一个方法更改每个方法的名称。这似乎是一种相当低效的方法,我确信有更好的方法使两个类中的两个对象引用所述对象的同一实例 干
public void setObjectReference(Object object){
object = this.object;
}
我的问题是我想在类之间引用一些对象,这种方法意味着我必须用不同的this.object创建一个方法代码>更改每个方法的名称。这似乎是一种相当低效的方法,我确信有更好的方法使两个类中的两个对象引用所述对象的同一实例
干杯
编辑:
我试图使用名为name的对象,在这个对象中有一些方法,即getName()
setName()
等。我希望能够在第一个类中使用setName()
设置值,然后在第二个类中使用getName()
。我试图在控制器之间通信的javafx应用程序中实现这一点
希望这对你有所帮助,你走的路是对的,但是你把对象和名称混在一起了。您不需要相同的名称来访问相同的值-您需要相同的对象。两个类之间进行协同通信的方法之一是使用公共对象并在两个类中使用它。像这样的
class Context{
String Name;
public void setName(String name){
this.Name=name;
}
public String getName(){
return Name;
}
}
class Controller1{
Context context;
public Controller1(Context context){
this.context=context;
}
public void someMethod(){
context.setName("Alex");
}
}
class Controller2{
Context context;
public Controller2(Context context){
this.context=context;
}
public void anotherMethod(){
String nameFromFirtsController=context.getName();
}
}
当然,还缺少很多东西,包括同步,还有更有效的方法,如观察者/观察者或消息传递,但我们讨论的是您的方法,我想展示一下基本思想
还有,你的意思是
this.object = object;
在类实例中保存值 。。。。这毫无意义。因此,您可以假设,如果您有一个班男孩和班女孩,仅仅因为他们提供相同的成员,他们是可互换的,并且一个对象可以同时是女孩和男孩?Object=this.Object
不会更改任何内容,如果Object是您的班成员。@NaN它重新引用本地对象变量,这确实有点浪费代码。我猜他是这个意思@Stultuske我试图使一个对象在第二个类中引用另一个对象,因此,例如,当我在类1中使用类似于setValue()
的东西时,那么在类2中,可以从getValue()
方法返回的变量是等效的。或者这种方法是不必要的,我遗漏了什么吗?告诉我们更多关于你试图解决的问题。您所讨论的方法对于面向对象的范例来说是非常不典型的。我刚刚尝试过使用它,但我遇到了一些错误,java.lang.NoSuchMethodException
,java.lang.InstanceionException
。正如您可能知道的,我不是java方面最有经验的人,但似乎是控制器的构造函数导致了错误,我不确定您是否可以在javafx控制器中使用构造函数,我假设您可以,但可能不是,这是基本示例的基本解释。您可以使用setContext(上下文)方法代替控制器构造函数。