Читайте численности работников и заработной платы (упражнение в использовании статического сайта)


WAP, чтобы создать класс с именем employee, имеющих empid В, а зарплату как члены данных и зарплату как члены данных. Создавать объекты этого класса и графа нет. сотрудников, работающих в организации, используя ключевое слово static.

Это мое решение на поставленный выше вопрос. Это правильный способ сделать это? Я новичок, поэтому буду признателен за вашу помощь. Дайте мне знать о своих ошибках.

    import java.util.*;
    class Employee{
private int empid;
private int salary;
private static int count;

private void setValue(int empid,int salary){
this.empid=empid;
this.salary=salary;
count++;
}

private void getValue(){
System.out.println("EmpId = "+empid);
System.out.println("Salary ="+salary);
System.out.println("Number of employees: = "+count);
}

public static void main(String[] args)
{
    Scanner kb=new Scanner(System.in);
    Employee e=new Employee();
    int id,sal;
    System.out.println("Enter Employee Id: ");
    id=kb.nextInt();
    System.out.println("Enter Salary: ");
    sal=kb.nextInt();
    System.out.println("The Values entered are :");
    e.setValue(id,sal);
    e.getValue(); 
    Employee e1=new Employee();
    System.out.println("Enter Employee Id: ");
    id=kb.nextInt();
    System.out.println("Enter Salary: ");
    sal=kb.nextInt();
    System.out.println("The Values entered are :");
    e1.setValue(id,sal);
    e1.getValue();
}}


159
0
задан 7 марта 2018 в 02:03 Источник Поделиться
Комментарии
2 ответа

Нет.

Вы использовать сеттер для изменения существующего сотрудника. Но нет смысла менять ID и зарплата. На самом деле, вы никогда не должны изменить идентификатор сотрудника.

Это должен быть конструктор класса вместо. В основном я бы ожидал увидеть поток следующим образом:

Scanner kb=new Scanner(System.in);
int id,sal;
System.out.println("Enter Employee Id: ");
id=kb.nextInt();
System.out.println("Enter Salary: ");
sal=kb.nextInt();
System.out.println("The Values entered are :");
Employee e=new Employee(id, sal);

Вторая вещь, чтобы отметить, что метод с префиксом "геть" должен вернуть какое-то значение объекта. Либо переименовать этот getValue() способ получить что-то вроде printInfo() или обеспечить фактическое геттеров:

public String getId() {
return id;
}

public static int getNbOfEmployees(){
return count;
}

Эти данные могут быть использованы где-то еще, чтобы распечатать информацию, например, в главном:

System.out.println("EmpId = " + e.getId());
System.out.println("Salary =" + e.alary());
System.out.println("Number of employees: = " + Employee.getNbOfEmployees());

0
ответ дан 7 марта 2018 в 02:03 Источник Поделиться

Я сделал следующие изменения по данным @Имус. Для нескольких сотрудников, я думаю, используя массив ссылок на объекты, было бы здорово.

    class Employee{
private int empid;
private int salary;
private static int count;

Employee(int empid,int salary){
this.empid=empid;
this.salary=salary;
count++;
}

public int getId(){
return empid;
}

public int getSalary(){
return salary;
}

public static int getNumberOfEmployees(){
return count;
}

public static void main(String[] args)
{
Scanner kb=new Scanner(System.in);
int id,sal;
System.out.println("Enter Employee Id: ");
id=kb.nextInt();
System.out.println("Enter Salary: ");
sal=kb.nextInt();
Employee e=new Employee(id,sal);
System.out.println("The values are :");
System.out.println("EmpId = "+e.getId());
System.out.println("Salary = "+e.getSalary());
System.out.println("No. of employees = "+Employee.getNumberOfEmployees());

}
}

0
ответ дан 7 марта 2018 в 04:03 Источник Поделиться