2016-11-18 15 views
-3

私の悪い英語のために申し訳ありません、私は2つの問題を混乱させる。最初の問題は、私は3つのもの(名前、連絡先、idNumber)を入力したいが、名前を入力しようとすると、 (scan.nextLine())で解決すると解決策の入力場所が見つからない、入力が欠落している別の問題があります。第2の問題は、配列にコンストラクタを割り当てる方法です。配列と入力

public class newClient { 
    Scanner scan= new Scanner(System.in); 
    Random rand=new Random(); 
    static int IDumber; 
    String unique; 
    int pin; 
    static int count = 0; 
    private String name; 
    private String idNumber; 
    private String contact; 

    public newClient(){ 
     setContact(contact); 
     setIdNumber(idNumber); 
     setName(name); 
     count++; 
    } 

    public String getName(){ 
     return name; 
    } 

    public void setName(String name){ 
     this.name=name; 
    } 

    public String getIdNumber(){ 
     return idNumber; 
    } 

    public void setIdNumber(String idNumber){ 
     this.idNumber=idNumber;  
    } 

    public String getContact(){ 
     return contact;  
    } 

    public void setContact(String contact){ 
     this.contact=contact; 
    } 

    public int uniqueID(){ 
     unique = idNumber.substring(8); 
     IDumber = Integer.parseInt(unique); 
     return IDumber; 
    } 

    public void display(){ 
     System.out.println("This is the password for first time login "+pin); 
    } 
    public int pinCode(){  
     pin = rand.nextInt(9000)+1000; 
     return pin; 
    } 

    public String toString(){ 
     return "Name: "+name+"\nUniqueID: "+IDumber+"\nContact: "+getContact()+"\npinCode: "+pin ; 
    } 

    public void admin(){ 
     newClient []nc = new newClient[10]; 
     login(); 
     while(true){ 
      System.out.println("Select 1:add Client\n 2:add Account\n 3:login as Client"); 
      try{ 
       int selection = scan.nextInt(); 
       switch(selection) 
       { 
       case 1: addClient(nc); 
         break; 
       case 2: addAccount(nc); 
         break; 
       case 3: client.client(); 
         break; 
       default: System.out.println("INvalid selection"); 
       } 
      } 
      catch(InputMismatchException ex){ 
       System.out.println("Invalid input"); 
       scan.nextLine(); 
      } 
     }  
    } 

    public void addClient(newClient []nc){ 
     newClient nw = new newClient(); 
     System.out.println("Enter name"); 
     nw.setName(scan.nextLine()); 
     scan.nextLine(); 
     System.out.println("Enter contact"); 
     nw.setContact(scan.nextLine());   
     System.out.println("Enter id number"); 
     nw.setIdNumber(scan.nextLine()); 
     nc[newClient.count]= new newClient(); 
     System.out.println("count"+nc[newClient.count]); 
     nw.pinCode(); 
     nw.uniqueID(); 
     System.out.println(nw.toString()); 
    } 
} 

答えて

1

まず、自分が何をしているのか、何を求めようとしているのか分かりません。 私はあなたがJavaの初心者であることを認識しています。しかし、あなたはどのようにコードするか分からず、コーディングを始める前にいくつかの重要な本を読むことをお勧めします。あなたのコードはいくつかの大きな流れとエラーを持っていますが、私はそれらを以下に修正しました。私はそれらのいくつかについても説明しました。

  • Javaの命名規則。
  • グローバル変数が多すぎます。
  • 構造ファイルを(クライアント)とは別に作成して使用する必要があります。

ここからコードが始まります。

import java.util.InputMismatchException; 



import java.util.Random; 

import java.util.Scanner;私は、私はあなたの質問に答えるかどうかわかりませんが、あなたがこの方法を試してみてください!

`public class Client` { 

    private String name; 
    private String idNumber; 
    private String contact; 
    private String unique; 
    private int pin; 

    //Constructor is for initialize values and basic functionality 
    public Client() 
    { 
     name = null; 
     idNumber = null; 
     contact = null; 
     unique = null; 
     pin = 0; 
    } 
    //Thats how you can interact with constructor 
    public Client(String name, String idNumber, String contact, String unique, int pin) 
    { 
     this.name = name; 
     this.idNumber = idNumber; 
     this.contact = contact; 
     this.unique = unique; 
     this.pin = pin; 
    } 

    public String getName(){ 
     return name; 
    } 

    public void setName(String name){ 
     this.name=name; 
    } 

    public String getIdNumber(){ 
     return idNumber; 
    } 

    public void setIdNumber(String idNumber){ 
     this.idNumber=idNumber;  
    } 

    public String getContact(){ 
     return contact;  
    } 

    public void setContact(String contact){ 
     this.contact=contact; 
    } 
    public String getUnique(){ 
     return unique;  
    } 

    public void setUnique(String unique){ 
     this.unique=unique; 
    } 
    public int getPin(){ 
     return pin; 
    } 
    public void setPin(int pin){ 
     this.pin=pin; 
    } 
    @Override 
    public String toString() { 
     return "Client [name=" + name + ", idNumber=" + idNumber + ", contact=" + contact + ", unique=" + unique 
       + ", pin=" + pin + "]"; 
    } 

}

class NewClient 
{ 
    public int uniqueId(String idNumber){  
     String unique = idNumber.substring(8); 
     return Integer.parseInt(unique);  
    } 
public void display(int pin){ 
    System.out.println("This is the password for first time login "+pin); 
} 

public int pinCode(){ 
    Random rand = new Random(); 
    return rand.nextInt(9000)+1000; 
} 

public void admin(){ 
    Client []nc = new Client[10]; 
    @SuppressWarnings("resource") 
    Scanner scan = new Scanner(System.in); 
    //You have somes method like login(), and i don't know what they are, so i comment rhem.. 
    //login(); 
    while(true){ 
     System.out.println("Select 1:add Client\n 2:add Account\n 3:login as Client"); 
     try{ 

      int selection = scan.nextInt(); 
      switch(selection) 
      { 
      case 1: nc[1] = addClient(); 
        break; 
      case 2: //addAccount(nc); 
        break; 
      case 3: //client.client(); 
        break; 
      default: System.out.println("INvalid selection"); 
      } 
     } 
     catch(InputMismatchException ex){ 
      System.out.println("Invalid input"); 
      scan.nextLine(); 
     } 
    }  
} 

public Client addClient(){ 
    Client client = new Client(); 
    Scanner scan = new Scanner(System.in); 
    System.out.println("Enter name"); 
    client.setName(scan.nextLine()); 
    scan.nextLine(); 
    System.out.println("Enter contact"); 
    client.setContact(scan.nextLine());   
    System.out.println("Enter id number"); 
    client.setIdNumber(scan.nextLine()); 
    client.setPin(pinCode()); 
    client.setUnique(String.valueOf(uniqueId(client.getIdNumber()))); 
    System.out.println(client.toString()); 

    return client; 
} 

}

...よろしく

+0

感謝のアプローチのために! !はい、コーディングの初心者です。私はJavaを非常に理解していません...私は投稿した質問をとても残念に思っています。実際これはプロジェクトの一部です。関連するもの以外は削除しません。私は配列にコンストラクタを代入する(私たちが(nc [newClient.count] = new Client()))。私の講義は、私に似たような例を示しているだけで、私はそこに何か別のやり方をすることさえ知りません。 –

+0

基本的な作業を最初に行い、オブジェクト指向のアプローチを学び、本を読んだり、チュートリアルや物事を見たりすることで、ハッピーコーディングに役立ちます。 –