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 で、10 人のユーザーを作成する .addSampleData() というメソッドを記述し、ArrayList の add() メソッドを使用して、10 個の新しいユーザー オブジェクトを ArrayList に配置します。

UserGroup で、int をパラメーターとして取り、ArrayList のそのスロットにユーザーを返す getUser メソッドを記述します。

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 に答える