如何在新类中引用变量?

时间:2016-10-30 21:58:21

标签: java

我正在编写一个由多个类组成的程序。一个类称为“User”,另一个类称为“userGroup”。我正在尝试从User类导入包含在构造函数中的变量,并在userGroup类中使用它。

我尝试过以下代码:

User userRetrieve = new User();
userRetrieve.User();

这段代码似乎不起作用,虽然我在各种教程中看到过这是从另一个类中检索数据的方法。第二行有“.User()”,因为构造函数也被称为User,但我不确定这是否正确,即使是程序的初始问题仍未保留第一行仍然存在。

我将在两个类中显示代码以获取可能显示我出错的地方的额外信息:

用户类:

public class User {

    String username;
    String userType;
    String name;

    public User() {
        username = "x";
        userType = "y";
        name = "z";
    }

    public String getUsername() {
        return username;
    }

    public String getUserType() {
        return userType;
    }

    public String getName() {
        return name;
    }

    public String setUserType(String admin) {
        return userType = admin;
    }

}

userGroup类:

 import java.util.ArrayList;

public class userGroup {

    String User;

    ArrayList<User> userArray = new ArrayList<>(); 

    Integer user0;

    public void addSampleData() {

    userArray.add(new User());

    }

    public void getUser(User user0)  {

       user0 = userArray.get(0);

    }

    public void printusername()  {

        System.out.println(user0.getUserName()); // x 


    }
}

我正在尝试在User类的构造函数中使用username和userType变量。

P.S对任何格式/缩进错误表示道歉。

4 个答案:

答案 0 :(得分:2)

你有些误解了一些概念。首先,User()方法是构造函数,因此当您User user = new User()调用该方法时。我建议对用户类进行此更改

public class User {

  private String username;
  private String userType;
  private String name;

  // Use constructor to pass data to your class
  public User(String username, String userType, String name) {
    this.username = username;
    this.userType = userType;
    this.name = name;
  }

  public String getUsername() {
      return username;
  }

  public String getUserType() {
      return userType;
  }

   public String getName() {
      return name;
  }

  public String setUserType(String admin) {
      return userType = admin;
  }


}

现在您可以创建数组并添加用户,然后检索其信息

List<User> users = new ArrayList<User>();
users.add(new User("x", "y", "z"));

users.get(0).getUsername(); // returns "x"

答案 1 :(得分:1)

制作用户列表

List<User> users = new ArrayList<User>()

添加用户

users.add(new User());

获取用户(列表和数组为零索引)

User user0 = users.get(0);

打印一些属性

System.out.println(user0.getUserName()); // x 

答案 2 :(得分:0)

您可以使用在构造函数类中创建的get方法吗?

因此,如果您想获取用户名,而userType只需使用get方法

创建一个新变量
User userRetrieve = new User();
String username = userRetrieve.getUsername();
String userType = userRetrieve.getUserType();

或者您也可以直接访问变量:

User userRetrieve = new User();
String username = userRetrieve.username;
String userType = userRetrieve.userType;

答案 3 :(得分:0)

User userRetrieve = new User();

在这一行上,您将实例化一个Person类型的新对象, 您可以通过调用与此特定类关联的构造函数来执行此操作。

完成此操作后,可以通过调用Person类中定义的各种方法来访问参数。所以在你的情况下你应该使用userRetrieve.getUsername()等等。但是你需要在调用类中声明一个变量来存储这些值。