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

Что такое объектно-ориентированное программирование (ООП)?

Объектно-ориентированное программирование - это парадигма программирования, которая требует от вас думать и моделировать свои программы как объекты реального мира. Вам необходимо понять семь основных концепций ООП:

  1. Классы
  2. Объекты
  3. Методы
  4. Абстракция
  5. Инкапсуляция
  6. Полиморфизм
  7. Наследование

Классы

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

Объекты и экземпляры.

Скажем, созданный нами класс содержит инструкции по изготовлению ноутбука. Назовем его «Класс ноутбука». Наш компьютер в точности следовал инструкциям в классе LaptopClass и превратил нас в портативный компьютер, который является реальным объектом. Но подождите, зачем нужен только один ноутбук, когда у нас может быть сотня? Мы можем дать нашему компьютеру дальнейшие инструкции, чтобы сделать больше ноутбуков. Теперь каждый из этих ноутбуков упоминается как экземпляры «LaptopClass».

Методы

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

Абстракция

Абстракция не актуальна. Это просто идея того, почему у нас есть методы. Вы знаете, мы все еще могли разговаривать с нашим ноутбуком без трекпада и клавиатуры. Но прежде всего нам нужно будет поступить в колледж, чтобы изучать электрическую электронику и компьютерную инженерию, потому что нам нужно знать все о схемах. Значит, нам нужно много знать физику и математику. Это определенно слишком большой стресс, чтобы пройти через него только потому, что я хочу поговорить со своим компьютером. К счастью, некоторые люди в прошлом переживали за нас весь этот стресс, поэтому они дали нам эти прекрасные методы, называемые клавиатурой и трекпадом, чтобы нам никогда не пришлось испытывать такой стресс (за исключением того, что мы хотим).

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

Инкапсуляцию часто путают с абстракцией, но они относятся к разным идеям. Говоря простым языком, инкапсуляция означает защиту хрупких частей наших объектов, чтобы мы не повредили их. У нас не может быть доступа к инкапсулированным компонентам или свойствам, если мы не разорвем объект на части. Используя аналогию с ноутбуком, мы не можем и никогда не должны пытаться оценить процессор и микросхемы внутри нашего ноутбука, иначе мы рискуем повредить его. Поэтому все компоненты ноутбука плотно упакованы, то есть хорошо инкапсулированы. Большинство языков программирования позволяют инкапсулировать тонкие свойства объекта, помечая их как частные или защищенные.

Полиморфизм

Полиморфизм не так страшен, как кажется. Когда объект или метод могут существовать в разных формах или выполнять разные функции в зависимости от входных данных, данных ему или его среде, мы говорим, что такой объект или метод демонстрирует полиморфизм. Это слишком много слов? Мы можем даже сделать это проще. Вирус полиморфен, потому что он может существовать как неживое существо вне тела и как живое существо внутри тела. Нос - это полиморфный «метод», потому что мы используем его, чтобы дышать или воспринимать. Та же идея применима в ООП и программировании в целом. Например, знак плюса в большинстве языков программирования используется для выполнения арифметического сложения или соединения двух слов в зависимости от получаемого ввода.

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

Наследование - это не что иное, как то, на что оно похоже. В реальном мире объекты наследуют свойства от объектов. Например, я унаследовал свою текущую форму от своего родителя. Все ноутбуки унаследовали общие свойства от первого ноутбука. У всех есть клавиатуры, экраны и трекпад. Ноутбуки, выпущенные позже, могут теперь иметь новые свойства, такие как сенсорные панели с несколькими касаниями, более мягкие клавиши, сканер отпечатков пальцев и т. Д. Та же идея применима и в ООП. Читая мой «LaptopClass», мой компьютер уже знает, как сделать ноутбук. Когда я хочу написать руководство для Macbook, мне не нужно снова переписывать свой класс ноутбука. Все, что мне нужно сделать, это написать в руководстве Macbook команду «сказать моему компьютеру», чтобы сделать мне ноутбук, но добавив к нему новые свойства и методы. Это наследование.

Резюме

В этой статье мы обсудили семь основных концепций ООП, а именно: классы, объекты / экземпляры, полиморфизм, методы, абстракцию, инкапсуляцию и наследование. Мы раскрыли следующее об этих концепциях:

  • Классы: чертежи предметов.
  • Объекты и экземпляры: они являются производными от классов.
  • Методы: это промежуточные этапы, через которые мы общаемся и получаем обратную связь от наших объектов.
  • Абстракция: это идея сокрытия деталей реализации за методами.
  • Инкапсуляция: идея защиты чувствительных свойств (или компонентов) наших методов.
  • Полиморфизм: объект или метод демонстрируют полиморфизм, когда он может принимать более одной формы в зависимости от получаемых входных данных.
  • Наследование: способ повторного использования свойств существующего объекта и добавления к нему дополнительных функций для создания нового объекта.

Если эта статья вам чем-то помогла, пожалуйста, аплодируйте и поделитесь.