Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2010

ООП в Java: классы, объекты

Мы вам написали примеры классов босса и секретарши, живущих своей офисной жизнью. И того, как они взаимодействуют друг с другом. Классы немного сложнее, чем тот, который мы разбирали на доске, но вы знаете все, чтобы разобраться в них. В коде много комментариев, которые, я надеюсь, помогут.

Если что-то непонятно, пишите письма или заходите к нам в лабораторию (к.633).

На всякий случай:

В объекте боcсa есть ссылка (переменная) типа Secretary. Пока у босcа никто не работает, эта ссылка никуда не указывает, т.е. ==null. Когда босс нанимает секретаршу, эта ссылка начинает указывать на конкретную нанятую секретаршу. Когда она увольняется, ссылка опять обнуляется, т.е. босс перестает знать об этой секретарше. Но! Секретарша не стирается с лица земли. Она продолжает существовать.

Задание заключается в следующем:

  1. Хорошенько разобраться в коде.
  2. В методе класса Boss chooseAndAppointSecretary дописать кусок кода, отвечающий за выбор секретарши с самыми короткими ногтями, причем такой, которая еще не работала у босса (без этого блока система работает неправильно!)

  3. Написать еще один класс Printer, который будет иметь один метод — print(), который отвечает за способность принтера печатать. Но принтер может ломаться с вероятностью, например, 0.2, и тогда при запросе на печать ничего не печатает и сообщает, что он сломан. Принтер в офисе будет существовать в единственном экземпляре. Когда секретарша заступает на должность, она узнает про него, то есть переменная типа Printer (надо завести ее в классе Secretary) начинает указывать на принтер. С этого момента, она может говорить принтеру что-то напечатать. Для этого вам надо немного изменить метод printDocuments() в классе Secretary. Соответственно, успех секретарши теперь будет зависеть не только от длины ее ногтей, но и от качества работы принтера :)

  4. Если хотите, можете пофантазировать и придумать какие-нибудь еще классы и/или взаимодействия между объектами и т.д.