Как получить входные данные от пользователя для двух разных экземпляров? - PullRequest
0 голосов
/ 15 февраля 2020

Я создаю программу, которая отображает имя и зарплату сотрудника. имя и зарплата вводится пользователем, и я хочу, чтобы два сотрудника, т.е. два экземпляра. Как получить два отдельных ввода от пользователя?

import java.util.Scanner;

publi c class Employee {

String first_name;
String last_name;
double pay = 0;

public Employee(double p, String f, String l) {
    first_name = f;
    last_name = l;
    pay = p;
}

public void name_printer(){
    //To collect Area
   System.out.println("Your name is "+ first_name+" "+last_name+".");   
}

public void pay_printer(){
    //To collect Area
    pay=pay*12;
    System.out.println("Your yearly pay is "+ pay+".");   
}

public void pay_update(){
    //To collect Area
    pay=pay*12;
    pay=pay+(pay*0.1);        
   System.out.println("Your raised yearly pay is "+ pay+".");   
}

public static void main(String[] args) {
    // TODO code application logic here
    Scanner input = new Scanner(System.in);
    System.out.print("Enter first name ");
    String in1_f = input.nextLine();
    System.out.print("Enter last name ");
    String in1_l = input.nextLine();
    System.out.print("Enter your monthly pay ");
    double user1_p = input.nextDouble();
    double in1_p=0;
    if (user1_p>0){
        in1_p=user1_p;
    } 
    Employee employee1 = new Employee(in1_p, in1_f, in1_l);
    employee1.name_printer();
    employee1.pay_printer();
    employee1.pay_update();

}

1 Ответ

0 голосов
/ 15 февраля 2020

Чтобы сделать ваш дизайн немного более удобным, вы должны следовать одной из основных привычек программистов - повторно использовать код:

// Note that I marked Scanner as final, 
// since it shouldn't be modified inside the method
public Employee createEmployee(final Scanner input) {
    System.out.print("Enter first name ");
    String in1_f = input.nextLine();

    System.out.print("Enter last name ");
    String in1_l = input.nextLine();

    System.out.print("Enter your monthly pay ");
    double user1_p = input.nextDouble();
    double in1_p=0;

    if (user1_p>0){
        in1_p=user1_p;
    } 

    System.out.println("All data is provided, creating instance...");
    return new Employee(in1_p, in1_f, in1_l);
}

А потом в основном удовольствие c:

Scanner input = new Scanner(System.in);
Employee e1 = createEmployee(input);
Employee e2 = createEmployee(input); // and so on...

Чтобы получить все данные об экземпляре, просто переопределите метод toString() в своем классе сотрудников (предпочтительнее, чем создание собственных методов печати):

@Override
public String toString() {
    StringBuilder s1 = new StringBuilder();
    s1.append("Some information " + someInformation + "\n");
    // construct the string which will represent your object
    return s1.toString();
}

И затем:

System.out.println(e1.toString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...