Введение

Привет, я Дипеш Параб из Мумбаи. Я разработчик программного обеспечения, обычно кодирую на Java и Python. Если вы занимались программированием раньше, вы наверняка сталкивались с чем-то, что называется объектно-ориентированным программированием или Oops. Это не то, что мы используем, чтобы показать признание ошибки, часто как часть извинения. Это очень интересная тема в программировании. Итак, наша цель на сегодня — узнать об объектно-ориентированном программировании.

Прежде всего, Дипеш, что такое объектно-ориентированное программирование? Почему это так важно?

Давайте посмотрим, что говорят об этом некоторые из признанных источников.

Объектно-ориентированное программирование — это парадигма программирования, основанная на концепции «объектов», которые могут содержать данные в виде полей и код в виде процедур.

- Википедия

Объектно-ориентированное программирование — это стиль программирования, который связан с концепцией класса, объектов и различными другими концепциями, вращающимися вокруг этих двух, таких как наследование, полиморфизм, абстракция, инкапсуляция и т. д.

-studytonight.com

Парадигма программирования, в которой все представляется в виде объекта, известна как истинно объектно-ориентированный язык программирования.

– javatpoint.com

Ну, если вы что-то из этого поняли, то поздравляю. Вы умны и быстро учитесь. Моя цель здесь состоит не только в том, чтобы общаться с теми, кто с легкостью разбирается в технических темах, но и в том, чтобы все поняли, что такое объектно-ориентированное программирование и как мы можем связать его с примерами из реальной жизни.

Из вышеизложенного вы, должно быть, видели несколько вещей, а именно классы, объекты и четыре принципа объектно-ориентированного программирования — инкапсуляцию, абстракцию, наследование и полиморфизм.

Я объясню вам эти темы на нескольких примерах, чтобы сначала установить базовое понимание. Затем мы перейдем к технической стороне этого.

Примеры из реальной жизни

Мы разделим его на две части:

1. Классы и объекты

Позвольте мне привести вам один пример из реальной жизни. Допустим, у нас есть класс транспортного средства с такими атрибутами, как тип, класс, марка, модель, цвет, количество_колес, количество мест, тип_двигателя, мощность_двигателя, тип_руля и т. д., а также такие методы, как запуск, вождение, остановка, остановка, звуковой сигнал и т. д. Если я захочу сделать из него какую-нибудь машину, то я легко это сделаю. Это означает, что моя машина будет объектом или экземпляром транспортного средства класса.

Давайте сделаем новый автомобиль тогда -

Атрибуты моего автомобиля:

тип = автомобиль, класс = седан, марка = suzuki, модель = dzire zxi, цвет = синий, количество_колес = 4, количество_сидений = 4, тип_двигателя = бензин, объем_двигателя = 1,2 см3, тип_руля = кожа

мои методы автомобиля:

Начало()

водить машину()

ломать()

Рог()

останавливаться()

Мой «сузуки дзире» заводится, когда я его завожу. Я могу водить машину, делать перерывы, я могу трубить в гудок, когда это необходимо, и останавливать ее. Так что я могу сделать любой экземпляр объекта из транспортного средства класса. Потому что класс Vehicle — это мой план создания n объектов автомобилей.

2. Принципы объектно-ориентированного программирования

Четыре принципа объектно-ориентированного программирования — это абстракция, инкапсуляция, наследование и полиморфизм.

Абстракция:

Абстракция означает показ только важной части или части, имеющей отношение к пользователю, без раскрытия внутреннего механизма. Во время вождения автомобиля вам нужно только знать, как его завести или остановить, как им управлять, тормозить или гудеть. Вам не нужно знать, как весь этот механизм работает внутри. Таким образом, это понятие является абстракцией, которая используется в oops.

Инкапсуляция:

Инкапсуляция = en + капсула

Инкапсулировать означает связывать что-то вместе внутри одного блока, точно так же, как лекарство связывается внутри капсулы.

Упс, инкапсуляция гарантирует две вещи

1. Сокрытие данных и защита от внешнего вмешательства

2. Классы разделены и не позволяют им тесно сцепляться друг с другом

В транспортном средстве существуют различные инкапсулированные механизмы, не влияющие друг на друга. Например, механизм рулевого управления не повлияет на механизм кондиционера, а дверной механизм не повлияет на механизм двигателя. Они инкапсулированы как отдельные сущности.

Наследование:

Наследование похоже на то, как дети наследуют некоторые признаки от своих родителей. Да, класс может быть родителем другого класса, который также известен как базовый класс. Класс, который наследует атрибуты и методы, называется дочерним классом.

Допустим, транспортное средство — наш родительский класс. Есть еще один класс, называемый суперкарами. класс суперкаров наследует класс транспортного средства, поэтому ему не нужно заново определять все атрибуты транспортного средства. Он может определять любые другие атрибуты, необходимые для создания суперкаров. Таким образом, класс суперкаров является потомком класса транспортных средств.

Возможно, вы знаете, что у родителей может быть несколько детей, а у этих детей может быть несколько детей.

Точно так же в oops есть три уровня наследования.

1. Одиночное наследство — от автомобиля к суперкару

2. Множественное наследование — от автомобиля до суперкаров, супербайков

3. Многоуровневое наследование — от автомобиля к суперкару, от суперкара к гоночному автомобилю

Полиморфизм:

Вы когда-нибудь использовали подобный метод для выполнения другой задачи. Давайте снова возьмем наш пример с автомобилем. Когда вы разгоняете двигатель, то в зависимости от того, какая передача включена, к автомобилю передается разная мощность и движение. таким образом, вы выполняете ту же функцию ускорения автомобиля, но в зависимости от уровня передачи автомобиль будет двигаться по-разному с разной мощностью и скоростью.

Пример кода

Для этой демонстрации я буду использовать Python в качестве языка программирования. Вы можете изучать или практиковать любой объектно-ориентированный язык программирования, какой захотите.

Давайте создадим класс, как мы создали выше:

класс автомобиля:

def __init__(self, Vehicle_type, Vehicle_class, марка, модель, цвет, no_of_wheels, no_of_seats, engine_type, engine_capacity, stearing_type):

self.vehicle_type = тип_транспортного средства

self.vehicle_class = класс_транспортного средства

селф.бренд = бренд

self.model = модель

self.color = цвет

self.no_of_wheels = количество_колес

self.no_of_seats = количество_мест

self.engine_type = тип_двигателя

self.engine_capacity = мощность_двигателя

self.stearing_type = stearing_type

def start_vehicle(я):

print("Машина завелась")

защита stop_vehicle (я):

print("Машина остановилась")

def drive_vehicle (я):

print("Машина поехала")

защита apply_break (самостоятельно):

print("Разрывы применены")

def blow_horn (я):

print("Звучит рог")

#Вот я сделал свой первый автомобиль из классного автомобиля………мы можем добавлять комментарии в код, используя знак «#». Это не будет частью выполнения программы

mycar1 = автомобиль («Автомобиль», «Седан», «Сузуки», «zxi», «Синий», 4,4, «Бензин», «1,2 куб. См», «Кожа»)

# использование функции print() для отображения информации о моей новой машине

print("Моя первая информация о машине:")

print("\nТип транспортного средства:",mycar1.vehicle_type,

«\nКласс :», mycar1.vehicle_class,

«\nМарка :»,mycar1.brand,

"\nМодель :",mycar1.model,

«\nЦвет:», mycar1.color,

«\nНет. Колеса:",mycar1.no_of_wheels,

«\nНет. мест :",mycar1.no_of_seats,

«\nТип двигателя:», mycar1.engine_type,

«\nМощность двигателя:», mycar1.engine_capacity,

"\nТип рулевого управления:",mycar1.stearing_type)

Вывод:

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

Ссылки:

Веб-сайты: wikipedia.com, javapoint.com, studytonight.com

Книги: Learn Python the Hard Way, Зед А. Шоу, Python Crash Course, Эрик Маттес

Обратная связь

Обладая этими знаниями, вы сделали первый шаг к внедрению объектно-ориентированных языков программирования, таких как Java, Python, C++ и т. д.

Если у вас есть какие-либо вопросы, вы можете связаться со мной по электронной почте — [email protected]

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

- Дипеш Ананд Параб