2016-11-18 5 views
-3

죄송합니다. 나쁜 영어로 죄송합니다. 2 가지 문제로 혼란 스럽습니다. 첫 번째 문제는 사용자가 3 가지 (이름, 연락처, idNumber)를 입력하려고하지만 이름을 입력하려고 할 때 입력 한 이름 장소 missing.I 해결책을 입력 솔루션을 놓친 해결책을 찾았습니다 (scan.nextLine()), 다른 문제가있는 입력이 누락되었습니다 해결할 때. 두 번째 문제는 어떻게 배열에 생성자를 할당 할 수 있습니다.배열 및 입력

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; 

가져 오기 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

감사합니다! ! 예, 코딩에 초보자인데, 자바를 이해하지 못합니다. 게시 한 질문을 정말 유감스럽게 생각합니다. 실제로 이것은 내 프로젝트의 일부이며 관련이없는 것들은 제거하지 않습니다. 그리고 어떻게 할 수 있습니까? 배열에 생성자를 할당하면 (우리가 생성자가 생성되었습니다 (nc [newClient.count] = new Client()).) 제 강의는 저에게 비슷한 예를 보여주기 때문에 그런 식으로 할 수있는 다른 방법이 있는지조차 모릅니다. –

+0

먼저 기본 지식을 바탕으로 객체 지향 접근법을 배우고, 책을 읽고, 자습서 등을 보는 것이 좋습니다. 해피 코딩에 도움이됩니다. –