2

このプログラムでユーザーに入力を求め、ユーザーの入力と同じ名前のクラス インスタンスを作成します。次に、createMember クラスは、ユーザーのすべてのデータが格納されるテキスト ファイルを作成します。どうすればそれを行うことができますか?

主な方法は次のとおりです。

     public static void main(String[] args) {

         String input = keyboard.nextLine();        
         input = new createMember(); // Error. can't do that for some reason?
    }
}

これがcreateMemberクラスです

public class createMember {

public void setMembership() {
    Scanner keyboard = new Scanner(System.in);
    out.println("Username: ");
    String input = keyboard.nextLine();

    try { 
        //Creates a text file with the same name as the username where data is stored.
        Formatter x = new Formatter(input);       
    } catch (Exception e) {
        out.println("Could not create username");
    }
}

//Methods for the user

みんな...次のようなインスタンスを簡単に作成できることを知っています:

  createMember member = new createMember();

私が実際にやりたいことは、ユーザーに自分でそれを行わせることです。そのため、プログラムは柔軟で、多くの人にとって使いやすいものになります。そのため、入力に基づいて、各ユーザーのデータを格納する個別のフォルダーが作成されます。

4

2 に答える 2

5

デフォルト以外のコンストラクターが必要なようです: (インスタンスが実際に返されるものであるため、コンストラクターは void でさえも値を返すことはできません。

String input = keyboard.nextLine();        
Member m = new Member(input);

public class Member {
    private String name;
    public Member(String name) {
        this.name = name;
    }

    public void setMembership() {
        try { 
            //Creates a text file with the same name as the username where data is stored.
            Formatter x = new Formatter(name);       
        } catch (Exception e) {
            out.println("Could not create username");
        }
    }
} 
于 2013-11-05T19:08:52.707 に答える
1

コンストラクタが必要です

public class CreateMember {
    private String input;

    public CreateMember(String input){
        this.input = input;
    }

    public String getInput(){
        return input;
    }
}

入力にアクセスするにはCreateMember.getInput()

public static void main(String[] args){
    String input = scanner.nextLine();
    CreateMember member = new CreateMember(input);

    System.out.println(member.getInput());
}
于 2013-11-05T19:10:49.553 に答える