Please enable JavaScript.
Coggle requires JavaScript to display documents.
Продвинутые ООКонцепции - Coggle Diagram
Продвинутые ООКонцепции
Конструкторы
Если конструктора в объекте не будет, то вызывается конструктор по умолчанию(вызов конструктора суперкласса)
Однако нужно всё равно добавить хотя бы пустой конструктор для будущих изменений, сопровождения
-
Можно сделать несколько конструкторов в одном классе для разных целей(работать они будут по принципу перегрузки методов)
Перегрузка методов: 2 метода с одинаковым именем, но разными подписями(принимаемые параметры, иногда и возвращаемые значения)
В UML диаграммах их подписывают именем класса, в котором они находятся. Не возвращают значение.
Обработка ошибок
Типы обработок
Игнорирование проблем
Самый плохой способ
Работа программы закончится или аварийно, или будет работать нестабильно, чего можно даже не заметить
-
Проверка на предмет потенциальных проблем, перехват ошибок и попытка решить обнаруженные проблемы
Проблемы выявляются кодом, а система пытается "починить" себя (стандартный случай с вводом клиента числа(по идее))
Выбрасывание исключений
Минусы других методик
Не всегда можно определить, когда впервые возникла проблема
-
Дают возможность выявлять проблемы, а затем решать их
-
Область видимости
Типы атрибутов
-
Объектов
-
В случаи чего (одинаковые имена у атрибута метода и объекта например), используем this, self, чтобы указать именно на атрибут объекта, а не метода
-
Перегрузка операторов
Изменение смысла оператора(например, + в случаи с str и int)
Он может сбивать с толку тех, кто читает и сопровождает код(даже самих разработчиков порой)
Например, почему бы + не выполнять операцию вычитания?
Поэтому, используя этот инструмент, нужно позаботиться о документации и комментировании
-
-
Операции с объектами
Проблема операций с объектами заключается в том, что сравниваются или копируются не объекты, а указатели на них
Копирование
-
Глубокое
Это когда следую всем ссылкам, а новые копии создаются для всех объектов, на которые имеются ссылки
-
Сравнение
Потребуется следовать соответствующим деревьям ссылок для того, чтобы правильно сравнить объекты
-