如何引用对象';Java中的s字段?

如何引用对象';Java中的s字段?,java,Java,我有一个类MainScreen,它在启动时被实例化。如何从另一个类中获取MainScreen对象的字段而不重新实例化该类 public class MainScreen { private String user; public String getUser() { return user; } } public class OtherClass { public void getTheUser() { MainScreen.this.getUser(); /

我有一个类
MainScreen
,它在启动时被实例化。如何从另一个类中获取
MainScreen
对象的字段而不重新实例化该类

public class MainScreen {
  private String user;
  public String getUser() {
     return user;
  }
}

public class OtherClass {
  public void getTheUser() {
    MainScreen.this.getUser(); // Here I want to get the user from instantiated main's mainscreen
  }
}

public class Main() {
  public static void main(String[] args) {
    new MainScreen();
  }
}

通常,通过在某个阶段将
Main
创建的
Main
实例传递到
OtherClass
中,例如通过
OtherClass
构造函数,然后让
OtherClass
使用
getUser
获取用户


一种非常不理想的方法是在
Main
上放置一个
public static
字段,用于存储
Main屏幕
引用,然后让
OtherClass
使用该字段。再次强调:这并不理想,尤其是因为它使得为类编写测试变得更加困难,并且增加了三个类之间的耦合。

通常,在某个阶段,通过将
Main
创建的
MainScreen
实例传递到
OtherClass
中,例如通过
OtherClass
构造函数,然后让
OtherClass
使用
getUser
获取用户

一种非常不理想的方法是在
Main
上放置一个
public static
字段,用于存储
Main屏幕
引用,然后让
OtherClass
使用该字段。再次强调:这并不理想,尤其是因为它使得为类编写测试变得更加困难,并且增加了三个类之间的耦合。

您可以使用

您可以使用

这是错误的:

  MainScreen.this.getUser();
您不能从另一个类中引用此。从
OtherClass
获取
User
的一种方法是在构造函数或setter方法中传递它

public class MainScreen {
    private String user;
    public MainScreen(String user){
        this.user = user;
    }
    public String getUser() {
       return user;
    }
}
public class OtherClass {
    String user;
    public OtherClass(String user){
        this.user = user;
    }

  public String getUser() {
    return this.user; 
  }
}


public class Main() {
  public static void main(String[] args) {
      String user = "user1";
      new MainScreen(user);
      new OtherClass(user);
  }
}
这是错误的:

  MainScreen.this.getUser();
您不能从另一个类中引用此。从
OtherClass
获取
User
的一种方法是在构造函数或setter方法中传递它

public class MainScreen {
    private String user;
    public MainScreen(String user){
        this.user = user;
    }
    public String getUser() {
       return user;
    }
}
public class OtherClass {
    String user;
    public OtherClass(String user){
        this.user = user;
    }

  public String getUser() {
    return this.user; 
  }
}


public class Main() {
  public static void main(String[] args) {
      String user = "user1";
      new MainScreen(user);
      new OtherClass(user);
  }
}

main屏幕
实例的
用户
必须以某种方式传递给
SomeOtherClass
。您是否有多个用户?是的,我有多个用户。正如TJ Crowder所说,您需要将特定
main屏幕
实例的引用传递给您的
其他类
OtherClass
中的构造函数或助手方法将完成
main屏幕
实例的
用户
必须以某种方式传递给
SomeOtherClass
。您是否有多个用户?是的,我有多个用户。正如TJ Crowder所说,您需要将特定
main屏幕
实例的引用传递给您的
其他类
OtherClass
中的构造函数或帮助器方法会导致OP有多个用户OP有多个用户