Классы




Содержание



Вводная информация




Выводы по главе


1. Классы это высокоуровневая надстройка над ф-цией - конструткором, поэтому они повторяют её логику

2. Поля и методы делятся на публичные и приватные

3. Существуют также статические поля и методы, которые также могут быть, как публичными, так и приватными

4. Синтаксис и смысл геттеров и сеттеров аналогичен таковым в ф-ции - конструкторе

5. Классы могут друг друга наследовать. Один класс может иметь несколько дочерних


Упражнения


Задачи ниже решаются в строгом режиме
1. Создать класс User, который будет иметь предустановленные вне коснтруктора публичные поля name = Макс и age = 25. Создать публичный метод getData, который будет их возвращать в формате 'name age'

2. Создать класс User, который будет иметь публичные поля name и age. Значения их задавать в экземпляре через конструктор. Создать публичный метод getData, который будет их возвращать в формате 'Имя: name, возраст: age'

3. Создать класс User, который будет иметь публичное поле name и приватное поле online (boolean). Значение публичного поля задать любыми данными через конструктор. Значение приватного поля online должно выставляться рандомно (true/false) в приватном методе setStatus. Создать публичный метод getStatus, который будет возвращать информацию в формате 'Имя: name, status: true - онлайн, false - офлайн'

4. Создать класс Summarize, которая на входе будет принимать массив данных о прибыле по месяцам [1000, 2590, ...] (1000 - январь, 2590 - февраль и т.д. продолжить произвольными значениями по всем месяцам).
  • Создать приватный метод annualSum, который будет суммировать и возвращать всю годовую прибыль.
  • Создать приватный метод formSum, который будет добавлять знак $ впереди переданного в него значения и возвращать в таком формате
  • Создать публичный метод showData, который будет выводить в консоль переданные в него данные.

В финальном варианте созданный экземпляр класса Summarize при вызове метода showData, должен выводить в консоль итоговую годовую сумму в формате $ 10000000

5. Создать класс со св-вами firstName и lastName. Создать геттер, который будет выводить полное имя при обращении к св-ву fullName

6. Создать класс со св-вами firstName и lastName. Создать геттер, который будет выводить полное имя при обращении к св-ву fullName и сеттер, который при попытке изменить св-во fullName будет вывод в консоль сообщение 'Изменение свойства fullName напрямую запрещено'

7. Создать класс Figure (фигура). Создать от него два дочерних класса Rectangle (четырёхугольник) и Circle (окружность). Figure должен содержать поле square (площадь) и метод getSquare, который должен его возвращать. Дочерние классы должны иметь метод setSquare, который принимает об-т параметров (для четырёхугольника - 2 стороны: a, b И для окружности - радиус: r) и возвращать вычисленный результат. При получении параметров, приводить их к числовому типу (Number), затем делать проверку (isNaN) - если проверка не пройдена, выводить сообщение в консоль и завершать выполнение программы выбросом ошибки (throw new Error())
Проверка работы программы - вызов метода setSquare с соответствующими параметрами и getSquare для получения результата
Площадь четырёхугольника: S = a * b
Площадь окружности: S = π * r^2
Значение константы π должно быть прописано в статическом св-ве родительского класса