Бакалавр
Дипломные и курсовые на заказ

Worker Level1, Worker Level2, Director

РефератПомощь в написанииУзнать стоимостьмоей работы

Ключевое слово extends означает, что класс Worker_Level1 унаследован от класса Worker. Далее идут стандартно два поля: WL1Money (зарплата рабочего уровня 1) и Start (количество отработанных лет). Затем идёт обычный конструктор, но появляется слово super. Запомните правило: в конструкторе класса потомка (а это наш нынешний класс), сначала вызывается конструктор класса предка (Worker) с этим… Читать ещё >

Worker Level1, Worker Level2, Director (реферат, курсовая, диплом, контрольная)

Скажу сразу, эти два класса (Worker_Level1, Worker_Level2) являются точной копией друг друга. Это было сделано, чтобы читатель понял, что можно продолжать создавать классы различных типов рабочих, а не останавливаться на 2-ух типах классов как в моей разработке. Для тех, кто захочет это реализовать, поясню, напишите код одного класса, а во втором цифру один замените на два.

Worker Level1, Worker Level2, Director.
Worker Level1, Worker Level2, Director.

Ключевое слово extends означает, что класс Worker_Level1 унаследован от класса Worker. Далее идут стандартно два поля: WL1Money (зарплата рабочего уровня 1) и Start (количество отработанных лет). Затем идёт обычный конструктор, но появляется слово super. Запомните правило: в конструкторе класса потомка (а это наш нынешний класс), сначала вызывается конструктор класса предка (Worker) с этим ключевым словом, а потом уже инициализируйте свои поля. Конструктор предка содержал три параметра, поэтому мы и вызываем super от трёх компонент. Т. е. на самом деле рабочий первого уровня состоит из рабочего. Зачем так сложно? Суть в том, что класс Worker является обобщающим, а мы от него унаследуем несколько типов рабочих. На практике это полезно тем, что вызывая метод который есть в Worker будет выполняться тот же метод, но уже в классе потомке (Worker_Level1 и мы получаем зарплату этого типа рабочих), а иначе мы бы получили зарплату только для этого класса… Это доступно благодаря позднему связыванию в переменных в Java (добавляем ещё один плюс этому языку). Ранее связывание — это если на момент запуска программа имела тип1, то и концу выполнения программы она и будет иметь тип1. А позднее связывание — это когда этот тип1 может быть заменён на тип2, если это является допустимым (например, наследование). Отмечу, что все методы, которые есть в предке, должны быть реализованы в потомке, ну и само собой можно сделать новые. Тут, как и с конструктором, сначала всё для предка, а потом что-то для «себя» (своего класса).

Методы SetStart (int Start)(установить кол-во отработанных лет) и SetWL1Money (double wL1Money)(установить зарплату рабочего уровня1) являются одновременно и сеттером, и инициализаторами полей. Стоп! Раньше сеттеры только меняли поля, а тут они их задают и почему они не в конструкторе — можно было сделать и так, но в данном случае мы их сделали так, чтобы можно было установить зарплату отдельно от создания объекта. Например, сначала создадим рабочего, а только через 3 дня установим его зарплату.

Далее идут два метода переопределённые от класса Worker — это Money () и Start (), которые возвращают значение соответствующих полей класса Worker_Level1. А также вновь переопределённый метод toStrint (). Вот был бы один метод toString () пришлось вручную перед каждым его вызовом писать System.out.println («Метод toString вызван для такого-то и такого-то класса»)*, а при помощи наследования и переопределения поменяли пару строк в методе и всё. Вновь отмечу, повторное использование кода и отсутствие лишнего кода, такого как *. Для разнообразия создадим не рядового рабочего, а именно главу компании. Это класс Director. Я не стал описывать отдельный пункт для этого класса т.к. он практически совпадает с Worker_Level1(можно было бы для этих классов создать разные поля и методы, но это уже индивидуальные случаи). Но его реализацию всё же покажу (автор счёл, нужным сделать 3-и похожих класса, потому что изначально читатель может сделать много классов типа Worker, а унаследовать мало классов типа W_L1 или 2, Director, что в большинстве случаев неверно).

Worker Level1, Worker Level2, Director.
Показать весь текст
Заполнить форму текущей работой