Объектно-ориентированные языки программирования
Имена методов доступа рекомендуется начинать со слов get и set, добавляя к этим словам имя поля. Для JavaBeans эти рекомендации возведены в ранг закона. Оказалось удобным сделать и обратное — разбить программу на модули так, чтобы она превратилась объектно ориентированное программирование в совокупность взаимодействующих объектов. Так возникло объектно-ориентированное программирование(object-oriented programming), сокращенно ООП (OOP) — современная парадигма программирования. Базовые принципы и конструкции JAVA ООП позволяет продуктовым IT-командам работать над крупными софтверными проектами, не мешая друг другу и отвечая за свою часть кода (отсюда и объекты в названии). Его обычно требуется много, поэтому разработчики создают шаблоны (класс). Затем они объединяют объекты, формируя из них единую систему. Использование полиморфизма и наследования позволяет создавать более общие и абстрактные решения, что делает код более понятным и гибким. Способность класса-потомка переопределить метод своего родительского класса. Это позволяет создавать специфический для класса функционал. Веб-программирование Java — следующая ступень C, C++, без типичных ошибок Для методов используется привычное def, но первым аргументом должен указываться self — это ссылка на текущий объект (об этом ниже). Если метод имеет другие аргументы, то они указываются после self как обычно. Локальные классы, как и все локальные переменные, не являются членами класса. Лекции и учебник по “Объектно-ориентированное программирование ООП” Классы предоставляют удобный способ организации кода, позволяя объединять данные и функциональность в одном месте. В этом примере у класса User есть метод greet_user(), который приветствует пользователя по имени. Если вам требуется написать одноразовый скрипт, который не нуждается в последующей поддержке, то и ООП в этой задаче, скорее всего, не пригодится. Но значительную часть жизненного цикла большинства современных IT-проектов составляют именно поддержка и расширение, поэтому ООП востребовано. У первых программистов было множество проблем, включая ограничение ресурсов компьютеров и отсутствие стандартов, которые затрудняли переносимость кода между различными системами. Такие ограничения в ресурсах и стандартах приводили к ещё одной серьёзной проблеме — зависимости от конкретной аппаратной архитектуры. Почему возникла потребность в ООП? Разные экземпляры одного класса имеют совершенно независимые друг от друга поля-, принимающие разные значения. Изменение поля в одном экземпляре никак не влияет на то же поле в другом экземпляре. В каждом экземпляре для таких полей выделяется своя ячейка памяти. Поэтому такие поля называются переменными экземпляра класса (instance variables) или переменными объекта. Такое дублирование методов называется перегрузкой (overloading). Вспомните, в главе 1 мы выводили данные любого типа на экран методом printin() не заботясь о том, данные какого именно типа мы выводим. Термины: Объектно-ориентированное программирование ООП Они определяются внутри класса (с помощью ключевого слова def) и используются для выполнения различных действий или операций над объектами класса. Эти свойства могут быть полезными при работе с объектами класса «Пользователь» в приложениях, таких как сайты, приложения для мобильных устройств и другие программы. Кроме того, вы можете создавать свои собственные свойства, которые соответствуют конкретным потребностям вашего проекта. Свойства класса могут быть определены с помощью ключевого слова «public» или «private». Процедурное программирование можно сравнить с постройкой маленького домика – нет необходимости тратить время и ресурсы на продумывание архитектуры. ООП же похоже на постройку сложного архитектурного сооружения, где очень важно продумать все детали, и только потом приступать к программированию (постройке). Объектно-ориентированное программирование ООП Обратите внимание, что хотя в классе первым аргументом стоит self, при вызове методов его не нужно указывать, то есть как будто бы его нет. Они определяются внутри класса (с помощью ключевого слова def) и используются для выполнения различных действий или операций над объектами класса. Кроме того, вы можете создавать свои собственные свойства, которые соответствуют конкретным потребностям вашего проекта. Класс формирует свою область видимости, поэтому чтобы вызвать метод, нужно вначале указать его класс. Наследование – это ключевой принцип ООП, позволяющий одному классу наследовать атрибуты и методы другого класса. Это помогает избежать дублирования кода и способствует модульности. Таким образом, ООП предоставляет структурированный подход к программированию, позволяя создавать модульные, легко поддерживаемые и расширяемые программы. Сначала мы видим программу как целостное множество взаимосвязанных объектов, а затем углубляемся в детали, определяя их характеристики и взаимодействие. Вот только разобраться в этом наборе нулей и единиц сложно даже автору кода. Таким образом, абстрактные классы группируются на вершине иерархии классов. Первые перечисляются в отдельной части модуля — интерфейсе (interface), вторые участвуют только в реализации (implementation) модуля. Данные, занесенные в модуль, тоже делятся на открытые, указанные в интерфейсе и доступные для других модулей, и закрытые, доступные только для процедур того же модуля. В разных языках программирования это деление производится по-разному. В языке Turbo Pascal модуль специально делится на интерфейс и реализацию в.языке С интерфейс выносится в отдельные “головные” (header) файлы. Его используют 9 из 10 самых популярных языках программирования, а изучение этого метода поможет разработчику улучшить качество кода и взаимодействие с коллегами в команде. На вебинаре мы разберем, в чем отличие ООП подхода к разработке в мультипарадигменном языке JavaScript от ООП подхода в классических объектно-ориентированных языках, как например Java. Какими плюсами и минусами обладает ООП в JavaScript, а также какие правила ООП мы можем в нем применять. Однако, если всё-таки в классе нужно использовать какие-то поля, либо получить доступ к другим методам этого же класса, то используется другой декоратор @classmethod. Здесь два объекта, которые имею одинаковые методы (или только метод). Модификаторы мы будем вводить по мере изучения языка. В реальных ситуациях доступ ограничивается разными проверками, особенно в set-методах, меняющих значения полей. Можно проверять тип вводимого значения, задавать диапазон значений, сравнивать со списком допустимых значений. Для того чтобы правильно реализовать принцип ответственности, применяется четвертый принцип объектно-ориентированного программирования — модульность (modularity). Поскольку у них одно и то же имя, совпадающее с именем класса, то они должны отличаться типом и/или количеством параметров. Такой “метод” называется конструктором класса (class constructor). Внимательный читатель заметил в описании класса Pet новое слово abstract. В языке Java все методы являются виртуальными функциями. Переопределение методов приводит к интересным результатам. Рассмотрим подробнее принципы объектно-ориентированного программирования. Идея объектно-ориентированного программирования оказалась очень плодотворной и стала активно развиваться. Выяснилось, что удобно ставить задачу сразу в виде совокупности действующих объектов — возник объектно-ориентированный анализ, ООА. Решили проектировать сложные системы в виде объектов — появилось объектно-ориентированное проектирование, ООП (OOD, object-oriented design). Инкапсуляция, конечно, производится не для того, чтобы спрятать от другого модуля что-то любопытное. IT курсы онлайн от лучших специалистов в своей отросли https://deveducation.com/ here.
Объектно-ориентированные языки программирования Read More »