Getter Setter方法在不同的java文件中

Jef*_*han 2 java getter-setter

我有三个java文件(Login.java,Sales.java),我想将一个变量"Username"传递给其他3个java文件,以便Sales.java可以显示"用户名"

这就是我所做的,构建一个loginstaff.java:

public class LoginStaff {
    private String Username;
    public void LoginStaff() {
    }
    public void LoginStaff(String Username) {
        this.Username = Username;
    }
    public String getUsername() {
        return this.Username;
    }
    public void setUserame(String Username) {
        this.Username = Username;
    }
}
Run Code Online (Sandbox Code Playgroud)

在Login.java中 在此输入图像描述

...
String login = tfusername.getText();
LoginStaff loginstaff = new LoginStaff();
loginstaff.setUserame(login);
...
Run Code Online (Sandbox Code Playgroud)

在Sales.java中 在此输入图像描述 ... LoginStaff loginstaff = new LoginStaff(); 的System.out.println(loginstaff.getUsername()); ...

问题是我无法在Sales中获取用户名,它返回"null".我知道这是与不同类中的新对象相关的东西,但我不知道如何解决这个问题.

Jon*_*eet 6

这不是你在哪里调用它的问题 - 它是两个不同的对象.这将在单个方法中演示相同的问题:

public void showProblem() {
    LoginStaff staff1 = new LoginStaff();
    // Assume typo in method name is fixed
    staff1.setUsername("foo");

    LoginStaff staff2 = new LoginStaff();
    System.out.println(staff2.getUsername()); // Prints null
}
Run Code Online (Sandbox Code Playgroud)

两个不同的对象将有两组不同的字段 - 这是故意的,也是一件好事.您无法创建新对象,并希望它具有您在另一个对象上设置的所有字段值.

从根本上讲,问题在于您需要使用Sales代码来了解代码中LoginStaff创建的对象Login.在不了解您的设计的情况下,我们无法真正告诉您实现这一目标的最佳方式.