Как сравнивать значение в методе?

197
02 июня 2018, 13:40

Не понятно каким образом сравнивать значение зарплаты в методе.

У вас есть два работника, вам нужно узнать, кто получает больше денег и на сколько. Для этого создайте 2 объекта класса Salary, с экземпляром, который содержит зарплату работника. Далее передайте объект, как аргумент, метода для сравнения

Код Main:

public class Main {
    public static void main(String[] args) {
        Salary first = new Salary();
        Salary second= new Salary();
        first.Employee("Сергей", 500);
        second.Employee("Артём", 700);
    }
}

Код Salary:

public class Salary {
            public void Employee(String name, int salary){
                System.out.println("Имя: " + name + " Зарплата: " + salary);
            }
            public void CompareSalary(Salary _employee){
                    _employee.Employee("Name" , 400); ???
            }   
        }  
Answer 1

А может проще попробовать?

public class Salary {
    private String name;
    private int salary;
    public Salary(String name, int salary){
        this.name = name;
        this.salary = salary;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getSalary() {
        return salary;
    }
    public void setSalary(int salary) {
        this.salary = salary;
    }
    public void CompareSalary(Salary employee){
        String msg = name + " получает столько же сколько и " + employee.getName();
       if (salary > employee.getSalary()) {
           msg = name + " получает больше чем " + employee.getName() + " на " + (salary - employee.getSalary());
       } else if (salary < employee.getSalary()) {
           msg = name + " получает меньше чем " + employee.getName() + " на " + (employee.getSalary() - salary);
       }
        System.out.println(msg);
    }
    @Override
    public String toString() {
        return "Salary{" +
                "name='" + name + '\'' +
                ", salary=" + salary +
                '}';
    }
}

вместо метода Employee можно просто переопределить метод toString. Валидация значений на вашей совести.

public static void main(String[] args) {
    Salary first = new Salary("Сергей", 700);
    Salary second= new Salary("Артём", 800);
    first.CompareSalary(second);
}
Answer 2

Как-то всё странно у вас. Просто делаете конструктор и метод для сравнения, куда передается параметр - второй объект для сравнения. В языке такое уже есть в интерфейсе Comparable:

public class Main {
    public static void main(String[] args) {
        Salary first = new Salary("Сергей", 500);
        Salary second = new Salary("Артём", 700);
        if(first.compareTo(second) > 0){
            System.out.println("Больше получает " + first.getName());
        } else if(first.compareTo(second) < 0){
            System.out.println("Больше получает " + second.getName());
        } else {
            System.out.println("Оба получают одинаково");
        }
    }
}
public class Salary implements Comparable<Salary> {
    private String name;
    private int salary;
    public Salary(String name, int salary){
        this.name = name;
        this.salary = salary;
    }
    public void print(String name, int salary){
        System.out.println("Имя: " + name + " Зарплата: " + salary);
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getSalary() {
        return salary;
    }
    public void setSalary(int salary) {
        this.salary = salary;
    }
    @Override
    public int compareTo(Salary o) {
        return Integer.compare(salary, o.getSalary());
    }
}
READ ALSO
String to ByteBuffer

String to ByteBuffer

Мне нужно в сокет отправить строкуПри этом, в пакете вначале должно идти длина пакета в байтах

196
Поиск элементов в Listview

Поиск элементов в Listview

На разметке активности есть ListView и EditTextПри вводе символов пользователем в ListView должны оставаться только объекты которые содержат введенные...

221
Как понимать работу jvm?

Как понимать работу jvm?

Я начал интересоваться, как работает виртуальная машина Java

254