Шаг 41.
Язык программирования Java.
Пример использования интерфейса

На этом шаге мы приведем пример использования интерфейса Comparable

Приведем ниже пример сортировки массива, состоящего из объектов класса Employee.


Исходный код класса EmployeeSortTest

import java.util.Arrays;

/**
 * <p>Класс EmployeeSortTest для тестирования программы</p>
 * */
public class EmployeeSortTest {
    public static void main(String[] args) {
        Employee[] staff = new Employee[3];
        staff[0] = new Employee("Employee1", 10000);
        staff[1] = new Employee("Employee2", 40000);
        staff[2] = new Employee("Employee3", 30000);

        Arrays.sort(staff);

        for (Employee employee : staff) {
            System.out.println("name = " + employee.getName() + ", 
                                           salary = " + employee.getSalary());
        }
    }
}

Исходный код класса Employee

/**
 * <p>Класс Employee реализует интерфейс Comparable<Employee></p>
 * */
public class Employee implements Comparable {
    private String name;
    private double salary;

    /**
     * <p>Конструктор класса Employee</p>
     * @param name Имя сотрудника
     * @param salary Зарплата сотрудника
     * */
    public Employee(String name, double salary) {
        this.name = name;
        this.salary = salary;
    }

    /**
     * <p>Функция для получения имени сотрудника</p>
     * @return Имя сотрудника
     * */
    public String getName() {
        return name;
    }

    /**
     * <p>Функция для получения зарплаты сотрудника</p>
     * @return Зарплата сотрудника
     * */
    public double getSalary() {
        return salary;
    }

    /**
     * <p>Функция для увеличения заработной платы сотрудника
     *                                      на заданое количество процентов</p>
     * @param byPercent Количество процентов
     * */
    public void raiseSalary(double byPercent) {
        double raise = salary * byPercent / 100;
        salary += raise;
    }

    /**
     * <p>Функция из интерфейса Comparable.</p>
     * <p>Сравнивает два объекта класса Employee.</p>
     * @return -1, если o.salary > salary. 0, если o.salary = salary. 
     *                                                 1, если o.salary < salary
     * */
    @Override
    public int compareTo(Employee o) {
        return Double.compare(salary, o.salary);
    }
}

Проект можно взять здесь


Рис. 1. Вывод программы

На следующем шаге мы рассмотрим свойства интерфейсов

Предыдущий шаг Содержание Следующий шаг