Объектно-ориентированное программирование — важный способ программирования в области разработки программного обеспечения. Объектно-ориентированное программирование относится к созданию объектов в рамках программирования и их эффективному использованию во всей программе. Объектно-ориентированное программирование, сокращенно ООП, — это метод программирования, который широко используется программистами и предприятиями. На самом деле большинство компаний предпочитают свободное владение ООП. Крайне важно, чтобы начинающий кодер практиковался в использовании ООП в своих программах. Это поможет создать необходимые навыки, которые помогут в создании профессиональных программ.
Новым разработчикам может быть сложно понять ООП, но с практикой это становится намного проще. Так что не следует сдаваться. Изучите эту методологию и адаптируйтесь к ее использованию на протяжении всей программы. ООП написано с использованием классов. Класс — это метод, определяющий объект. Так, например, предположим, что мы создаем автомобиль-объект. Допустим, этот автомобильный объект описывает год выпуска автомобиля, марку, модель и тип автомобиля: AWD (полный привод) или FWD (передний привод). Класс будет называться «Автомобиль» для простоты. Мы бы спроектировали этот класс автомобилей таким образом, чтобы он мог создавать множество объектов. Проблема с процедурным программированием заключается в том, что каждый объект должен постоянно создаваться заново с использованием дополнительного кода. В то время как ООП позволяет программисту постоянно использовать один и тот же класс для создания разных объектов (или экземпляров) этого класса. Например, скажем, мы делаем электронную таблицу для нашего босса с помощью программирования. В этой таблице у нас должен быть список автомобилей. Каждый автомобиль имеет различные атрибуты, перечисленные с ним. Например, какой год выпуска, марка, модель, полноприводная или переднеприводная. Мы всегда можем использовать код, чтобы сделать 5 разных автомобилей в электронной таблице. Однако нам постоянно придется писать больше кода, чтобы создавать больше автомобилей. Это может оказаться неэффективным, и, скорее всего, ваш начальник будет расстроен тем, что вам потребовалось две недели, чтобы подготовить отчет, который ваш коллега сделал за два дня. Здесь на помощь приходит ООП.
Мы бы создали класс под названием Car. Этот класс автомобилей позволит нам создавать столько автомобилей в отчете, сколько требует босс. Класс будет содержать атрибуты, которые относятся к тем же атрибутам, которые необходимы в электронной таблице (год, марка, модель, AWD или FWD). Каждый раз, когда нам нужно добавить новый автомобиль, мы просто отправляем его в класс автомобилей, и компьютер создает для нас объект. Класс Car может быть создан на Ruby следующим образом:
Класс создается путем вызова «класса» и последующего имени, которое вы хотели бы для класса, лучше всего убедиться, что оно написано с заглавной буквы. Класс заканчивается ключевым термином «конец».
Вот как создать класс. Затем внутри класса нам нужен «конструктор». Конструктор — это первый метод, который должен запускать класс. Каждый раз, когда вы создаете новый объект, метод конструктора автоматически запускается, чтобы установить для объекта значение по умолчанию. Например, если мы не указываем марку, модель или год выпуска автомобиля, мы можем установить значение по умолчанию. Если мы хотим, чтобы нашим автомобилем по умолчанию была Toyota Corolla 2007, то метод конструктора может сделать это за нас. Но в этом случае мы хотим, чтобы конструктор принимал аргументы, чтобы мы могли сообщить ему, какого года выпуска автомобиль, какой марки и какой модели. Таким образом, мы создадим метод внутри класса, который будет принимать эти аргументы. Мы хотим взять эти аргументы и присвоить их переменным экземпляра, которые можно использовать во всем нашем классе. Переменные экземпляра — это те же самые переменные, которые можно использовать во всем классе, а не только в одном методе внутри класса. Это делается путем добавления символа «@» перед именем переменной. В Ruby принято создавать метод конструктора с именем «initialize». Это сообщает программисту, что этот код инициализируется, как только вызывается класс. Вот как это будет выглядеть:
Теперь мы можем использовать переменные экземпляра в любом месте класса. Следующее, что мы должны сделать, это создать способ для программиста вызывать определенные атрибуты в программаторе. Они называются «методы получения». Они просто возвращают значение, которое мы хотим вернуть. Мы должны создать по одному для каждого атрибута. Итак, если мы выводим только название модели автомобиля, мы можем вызвать «метод получения модели». Вот так выглядят все геттер-методы для этого класса:
Другой метод, который будут использовать беглые программисты, называется setter-method. Метод установки позволяет использовать для изменения значений переменных экземпляра. Так, например, если мы решим, что для определенного автомобиля-объекта мы хотим, чтобы год был 2010, а не 2007, мы можем это сделать. Метод установки обычно принимает аргумент, который можно использовать во всем методе для изменения любых значений. Для нашего класса машин хотелось бы так:
Хотя методы получения и установки могут быть написаны так, как показано на изображениях выше. Их также можно написать на Ruby, используя более простой ярлык. Getter-методы будут вызываться с использованием ‘attr_reader’, за которым следуют атрибуты. Методы установки будут вызываться с использованием «attr_writer», за которым следуют атрибуты. Вот как мы можем сократить код класса Car, чтобы использовать меньше строк кода:
Теперь мы должны создать метод, который будет возвращать искомую информацию. Этот метод принято называть print_info. Этот метод распечатает то, что нам нужно. Это должно вернуть все атрибуты или те, которые мы ищем. Вот как это делается:
Это завершает этот конкретный пример класса. Теперь сосредоточимся на части ООП. В вашем основном коде. Допустим, нам нужно ввести 5 разных автомобилей, которые будут автоматически печатать атрибуты каждого автомобиля. Мы бы сделали это, создав экземпляр объекта для каждого из них. Это делается путем создания объекта с использованием метода «.new», которому предшествует имя класса «Car». Мы также передаем аргументы, которые будет использовать класс. Мы должны присвоить этот объект переменной. Просто для простоты мы будем называть каждую переменную «car_one», «car_two», «car_three» и т. д.:
Затем мы можем использовать метод print_info внутри класса, чтобы убедиться, что наш класс работает нормально. Это делается путем вызова имени переменной, за которым следует «.print_info»:
Он выведет следующее:
Это был очень простой пример того, как создается и используется ООП. Это удобно, потому что в процедурном программировании нам потребовалось бы столько же кода, чтобы сделать то же самое:
Вместо этого с помощью ООП все, что нам нужно для создания необходимого количества автомобилей-объектов, это:
ООП очень полезно. Если бы нам нужно было сделать сотни автомобилей, мы могли бы сделать это с помощью двух строк кода, а не восьми строк на машину. ООП используется в большей части индустрии программирования и показывает мастерство. Хороший кодер должен изучить ООП-программирование и научиться эффективно его использовать.