0

我正在用 blueJ 编码。我的目标是:1)写一个用户类

一个用户:

has a username e.g 'fj3'
has a userType which can be: 'user', 'editor' or 'admin'
has a name e.g 'Francis'
has a constructor which takes the username, userType and name as parameters
has a getUsername() method
has a getUserType() method
has a getName() method
has a setUserType() method which takes one of the user types as a parameter 

2)写一个UserGroup类

UserGroup 类必须有一个用户的 ArrayList。

为 UserGroup 类编写一个构造函数。它应该实例化 ArrayList。

在 UserGroup 中编写一个名为 .addSampleData() 的方法,该方法创建 10 个用户,并使用 ArrayList 的 add() 方法将 10 个新用户对象放入 ArrayList。

在 UserGroup 中编写一个 getUser 方法,该方法将 int 作为参数并返回 ArrayList 的该槽中的用户。

在 UserGroup 中,在 UserGroup 中编写 printUsernames() 方法:

使用增强的 for 循环(见上文),遍历 ArrayList 并打印 ArrayList 中每个用户的用户名和 userType。

到目前为止,我所拥有的是:

package user;
public class User{
    public enum UserType{                           
        ADMIN, EDITOR, USER;
    }

    private String id;                             
    private UserType userPermissions;               
    private String actualName;                      

    public User(String username, UserType userType, String name){
        id = username;
        userPermissions = userType;
        actualName= name;
    } 

    public String getUsername(){
        return id;
    }

    public UserType getUserType(){
        return userPermissions;
    }       

    public String getName(){
        return actualName;
    }

    public void setUserType(UserType input){
        userPermissions = input;
    }
}

还有我的 UserGroup 类:

package user;
import java.util.*;
import user.User.UserType; 

public class UserGroup{

    private ArrayList<User> people;

    public UserGroup(){
        people = new Arraylist<User>();
    }

    public static void addSampleData(String username, UserType userType, String name){
        people.add(new User(username, userType,name));
    }

    public User get(int){
        return User; 
    }

    public void printUsernames(){
        for (User user: groupArray){
            System.out.printf("%s %s\n", user.getUsername(), user.getuserType);
        }
    } 
}

这显然远未完成,但我完全陷入困境。我的第一个问题是我不确定如何为此编写 get 方法。请在这件事上给予我帮助!!我认为我的 User 类很好,但我的 UserGroup 类还远未完成所有目标,我不知道该怎么做!!

4

1 回答 1

0

到目前为止看起来不错,一些更正:

addSampleData()方法不应该是静态的,因为它使用类的非静态成员。该请求还声明它要添加示例数据本身。

getUser()是相当直截了当的。

printUsernames()方法使用未知成员。

public void addSampleData() {
    people.add(new User("pe3", UserType.ADMIN,"Peter"));
    people.add(new User("u987", UserType.EDITOR,"Udo"));
    people.add(new User("frank123", UserType.USER,"Frank"));
    // repeat ...
}

public User getUser(int idx) {
    return people.get(idx); 
}

public void printUsernames(){
    for (User user: people){
        System.out.printf("%s %s\n", user.getUsername(), user.getuserType);
    }
} 

然后在一个主要方法中:

UserGroup grp = new UserGroup();
grp.addSampleData();
grp.printUsernames();
User u1 = grp.getUser(0);
于 2013-11-10T11:43:19.330 回答