5_Классы и структуры

Урок 5 : Классы и структуры

О чём этот урок

Классы и структуры - основа объектно-ориентированного программирования. Здесь практикуется создание типов, инкапсуляция, конструкторы и наследование.


Теория

Вопросы для самопроверки

  1. Что такое класс? От чего наследуется, каким типом данных является?
  2. Что такое структура? Каковы основные отличия от класса?
  3. Что такое поля (fields) класса? Какова рекомендация по инкапсуляции полей?
  4. Что такое конструктор класса? Что такое деструктор класса? Приведите примеры их использования.
  5. Что такое модификаторы доступа? Перечислите основные и кратко объясните их назначение.
  6. Для чего используется ключевое слово this? Для чего используется this в параметрах метода?
  7. * Как модификатор static влияет на класс и метод?
  8. * Что такое наследование и для чего используется?
  9. * Для чего используется ключевое слово base? Чем override отличается от new при переопределении метода?
  10. ** Что такое инкапсуляция?


Практика

Как выполнять задания

Откройте файл Lesson5.cs для выполнения заданий. Результат выводить в строку консоли.
Дополнительные классы рекомендуется создавать в директории NewClasses/.

Задания

Задание 1.

Создайте статический класс с методами для работы со списками:

  • сортировка списка по возрастанию;
  • сортировка списка по убыванию;
  • вывод всех элементов в консоль.
Задание 2.

Создайте структуру для хранения комплексного числа.

Задание 3.

* Реализуйте в этой структуре методы сложения, вычитания и умножения.

Задание 4.

* Переопределите операторы +, -, * и переопределите метод сравнения Equals.

Задание 5.

** Создайте класс Person с полями name, age, gender, work:

  • work должно быть структурой, содержащей поля role и company;
  • gender должен быть enum.
    Person должен содержать свойства для всех полей и иметь переопределённые методы ToString и Equals.
    Создайте несколько персон с разными параметрами и запишите их в список. Реализуйте последовательный вывод информации о каждой персоне в консоль через вызов метода PrintData(): currentPerson.PrintData()

📋 Вернуться к теории урока 5