Работа с классами и объектами

  1. Сделайте класс Worker, в котором будут следующие public поля - name (имя), age (возраст), salary (зарплата).Создайте объект этого класса, затем установите поля в следующие значения (не в __construct, а для созданного объекта) - имя 'Иван', возраст 25, зарплата 1000. Создайте второй объект этого класса, установите поля в следующие значения - имя 'Вася', возраст 26, зарплата 2000. Выведите на экран сумму зарплат Ивана и Васи. Выведите на экран сумму возрастов Ивана и Васи. Смотреть Код
  2. Сделайте класс Worker, в котором будут следующие private поля - name (имя), age (возраст), salary (зарплата) и следующие public методы setName, getName, setAge, getAge, setSalary, getSalary. Создайте 2 объекта этого класса: 'Иван', возраст 25, зарплата 1000 и 'Вася', возраст 26, зарплата 2000. Выведите на экран сумму зарплат Ивана и Васи. Выведите на экран сумму возрастов Ивана и Васи. Смотреть Код1 Код2
  3. Дополните класс Worker из предыдущей задачи private методом checkAge, который будет проверять возраст на корректность (от 1 до 100 лет). Этот метод должен использовать метод setAge перед установкой нового возраста (если возраст не корректный - он не должен меняться).Смотреть Код1 Код2
  4. Конструкторы

  5. Сделайте класс Worker, в котором будут следующие private поля - name (имя), salary (зарплата), age (возраст). Сделайте так, чтобы эти свойства заполнялись в методе __construct при создании объекта (вот так: new Worker(имя,зарплата,возраст) ). Сделайте также public методы getName, getSalary, getAge. Создайте объект этого класса 'Дима', возраст 25, зарплата 1000. Выведите на экран произведение его возраста и зарплаты. СмотретьКод
  6. Определить пользовательский класс ПОЕЗД, имеющий private поля:
    - название
    - номер рейса
    - цена билета
    - количество билетов
    - время отправления
    Определить в классе конструктор, создать методы для просмотра полей данных.
    Обеспечить проверку ввода цены (от 10 до 10000 рублей), если цена не принадлежит этому интервалу установить ее равной - 100р. - предусмотреть специальный метод. Создать 3 поезда.
    Определить общую стоимость билетов, проданных на все 3 поезда. СмотретьКод1 Код2Код3
  7. Определить пользовательский класс КВИТАНЦИЯ, имеющий private поля:
    - номер
    - дата
    - сумма
    Определить в классе конструктор, создать методы для просмотра полей данных.
    Создать 5 квитанций.
    Подсчитать общую сумму по всем квитанциям.
    Обеспечить проверку ввода суммы, она должна быть в больше 50р. Если она меньше, то присвоить 50р.
  8. Сделайте класс User, в котором будут следующие свойства - name и age. Определить в классе конструктор.
    Сделайте метод setAge, который параметром будет принимать новый возраст пользователя.
    Создайте объект класса User с именем 'john' и возрастом 25. С помощью метода setAge поменяйте возраст на 30. Выведите новое значение возраста на экран.
    Модифицируйте метод setAge так, чтобы он вначале проверял, что переданный возраст больше или равен 18. Если это так - пусть метод меняет возраст пользователя, а если не так - то ничего не делает.
  9. Сделайте класс Employee, в котором будут следующие свойства работника - name, salary. Сделайте метод doubleSalary, который текущую зарплату будет увеличивать в 2 раза. Определить в классе конструктор.
  10. Сделайте класс Rectangle, в котором в свойствах будут записаны ширина и высота прямоугольника. Определить в классе конструктор.
    В классе Rectangle сделайте метод getSquare, который будет возвращать площадь этого прямоугольника.
    В классе Rectangle сделайте метод getPerimeter, который будет возвращать периметр этого прямоугольника.
  11. Cоздайте такой же класс User с такими же методами. Создайте объект этого класса User проверьте работу методов setAge и addAge.Добавьте также метод subAge, который будет выполнять уменьшение текущего возраста на переданное количество лет.
  12. Сделайте класс Student со свойствами $name и $course (курс студента, от 1-го до 5-го).
    В классе Student сделайте public метод transferToNextCourse, который будет переводить студента на следующий курс.
    Выполните в методе transferToNextCourse проверку на то, что следующий курс не больше 5.
    Вынесите проверку курса в отдельный private метод isCourseCorrect.
  13. Сделайте класс Employee, в котором будут следующие приватные свойства: name, age и salary. Сделайте геттеры и сеттеры для всех свойств класса Employee. Дополните класс Employee приватным методом isAgeCorrect, который будет проверять возраст на корректность (от 1 до 100 лет). Этот метод должен использоваться в сеттере setAge перед установкой нового возраста (если возраст не корректный - он не должен меняться). Пусть зарплата наших работников хранится в долларах. Сделайте так, чтобы геттер getSalary добавлял в конец числа с зарплатой значок доллара. Говоря другими словами в свойстве salary зарплата будет хранится просто числом, но геттер будет возвращать ее с долларом на конце.
  14. Сделайте класс City, в котором будут следующие свойства: name, population (количество населения). Создайте 5 объектов класса City, заполните их данными и запишите в массив. Переберите созданный вами массив с городами циклом и выведите города и их население на экран.
  15. Наследование

  16. Сделайте класс User, в котором будут следующие protected поля - name (имя), age (возраст), public методы setName, getName, setAge, getAge.
    Сделайте класс Worker, который наследует от класса User и вносит дополнительное private поле salary (зарплата), а также методы public getSalary и setSalary.
    Создайте объект этого класса 'Иван', возраст 25, зарплата 1000. Создайте второй объект этого класса 'Вася', возраст 26, зарплата 2000. Найдите сумму зарплата Ивана и Васи.
    Сделайте класс Student, который наследует от класса User и вносит дополнительные private поля стипендия, курс, а также геттеры и сеттеры для них.
    Cделайте класс Driver (Водитель), который будет наследоваться от класса Worker из предыдущей задачи. Этот метод должен вносить следующие private поля: водительский стаж, категория вождения (A, B, C).
  17. Создайте базовый класс Person. Класс должен содержать следующие поля:
    - фамилия служащего (fam)
    - номер служащего (tab)
    - оклад служащего (salary) - Оклад должен быть в диапазоне: 3000< оклад< 50000. Если оклад меньше 3000 присваивать значение 3000, если больше 50000 присваивать 50000.
    В классе необходимо реализовать - конструктор.
    Создайте производный класс Manager, который добавляет следующие поля в класс Person:
    - наименование компании, в которой работает менеджер (company)
    - объем продаж менеджера (sale)
    Класс должен содержать конструктор и следующие методы:
    - cвойства: Company, Sale - метод Premia для вычисления размера премии - 5% от объема продаж - метод, getInfo обеспечивающий вывод значений полей двух классов на экран монитора Создать массив и заполнить объектами класса менеджер(10 шт.) Добавьте поиск по фамилии и общая сумма всех зарплат.
  18. Пусть иметтся салон продажи сотовых телефонов. Создайте базовый класс SotTel. Класс должен содержать следующие поля и свойства:
    - название сотового телефона
    - производитель телефона
    Создайте производный (от базового) класс NewSot, который имеет следующие поля и свойства:
    -цена
    -цвет сотового телефона
    Напишите программу, в которой будет объявлен массив объектов класса NewSot и обеспечен ввод всех данных и вывод на экран монитора. Подсчитать общую стоимость всех телефонов.
    Сделать поиск по названию сотового телефона, производителю и по диапазону цены.
  19. Абстрактные классы

  20. Объявить абстрактный класс государство. Объявить два производных класса – республика, монархия. В каждом из классов объявить метод, с помощью которого можно создать список старейших государств. Для республики – год создания не позже 1900, для монархии – правление одной династией более 300 лет считать старейшими.
  21. Объявить абстрактный класс испытание. Объявить два производных класса – тест, экзамен. В каждом из классов объявить метод, с помощью которого можно создать список успешных результатов. Тест - более 75 баллов, экзамен - оценка не менее 4 считать успешными. Определить среднее значение по всем тестам и по всем экзаменам.
  22. Объявить абстрактный класс издание (не менее 3-х полей в классе). Объявить три производных класса – учебник, журнал, книга. Использовать конструкторы. Список полей и методов определить самостоятельно. В каждом из классов объявить метод, с помощью которого можно создать список неходовых изданий, которыми считать: учебник с годом издания раньше 2000 года, журнал со стоимостью дороже 500 рублей, книгу с количеством страниц более 800. Обеспечить проверку ввода всех числовых значений, чтобы не было нулевых или отрицательных значений. Определить стоимость всех журналов.
  23. Объявить абстрактный класс кадры. Объявить два производных класса – служащий, рабочий. Использовать конструкторы. Список полей и методов определить самостоятельно. В каждом из классов объявить метод, с помощью которого можно создать список перспективных кадров. Для служащих – стаж не менее 5 лет, для рабочих – количество изобретений не менее 2 считать перспективными. Обеспечить проверку ввода всех числовых значений, чтобы не было нулевых или отрицательных значений. Определить общее количество изобретений рабочих и общий стаж для всех кадров
  24. Объявить абстрактный класс Person. Объявить два производных класса – Student и Teach.Использовать конструкторы. Список полей и методов определить самостоятельно. В каждом из классов объявить метод, с помощью которого можно создать список выдающихся педагогов и студентов. Студентов со средним баллом больше 4.8 и педагогов с числом публикаций более 10 статей считать выдающимися