2017-03-11 4 views
1

この場合、名前を入力します。メインクラスから名前を入力してnewClassに渡したい。もう一度別の名前を入力しようとすると、前の名前が上書きされていることがわかりました。クラスの値を入力するときに値を上書きしない方法は?

public class JavaApplication107 { 
public static void main(String[] args) { 
    byte number; 
    NewClass obj = new NewClass(); 
    do{ 
     System.out.println("MENU : "); 
     System.out.println("1. Show Data"); 
     System.out.println("2. Input Data"); 
     System.out.println("3. Exit"); 
     Scanner sc1 = new Scanner(System.in); 
     Scanner sc2 = new Scanner(System.in); 
     System.out.print("Input Number : "); 
     number = sc1.nextByte(); 
     switch (number){ 
      case 1: 
       obj.setShowBiodata(); 
       break; 
      case 2: 
       System.out.print("Input your name : "); 
       String strTmp = sc2.nextLine(); 
       obj.setName(strTmp); 
       break; 
     } 
    }while(number != 3); 
}} 

BLOCKQUOTE

public class NewClass { 
private String mName; 
void setName(String name){ 
    mName = name; 
} 
void setShowBiodata(){ 
    System.out.println("Name : " + mName); 
}} 

だから私は、複数の名前

+0

はい?それは 'setName'がするものなのですか?どこに新しい(または古い)名前が格納されるはずです - それはあなたの説明からはっきりしません – UnholySheep

+0

それで、値を上書きしないようにメソッドを作る方法は?私は配列か別のものを使うべきですか? –

+0

あなたはまだ何が起こったのか説明していません。しかし、あなたは 'ArrayList '(この場合、単純な配列よりも好ましい)を使いたいと思うように聞こえます。 – UnholySheep

答えて

1

が、それはここで名前

public class NewClass { 
private String mName =""; 
void setName(String name){ 
    mName = mName+"\n"+name; 
} 
void setShowBiodata(){ 
    System.out.println("Name : " + mName); 
}} 

のすべてをプリントアウトする必要があり、このコードを試してみてください得ることができますあなたが恋する方法ですアレイを使用する

public class NewClass { 
private String[] names = new String[20]; 
private int number = 0; 
void setName(String name){ 
    names[number]= name; 
    number++: 
} 
void setShowBiodata(){ 
for (int i =0; i<number; i++) 
    { 
    System.out.println(names[i]); 
    } 
}} 
+0

おかげで。しかし、時には配列を使いたいと思ったら助けてくれますか? –

+0

インデックスの名前を付けたい –

関連する問題