09.03.03 (Б) Б1.В.06 Объектно-ориентированное программирование (Марсенич И.А.) 2 курс
Как ООП помогает разработчикам писать код быстрее и проще
Как ООП помогает разработчикам писать код быстрее и проще
Программирование неоднородно — существуют принципы и подходы, которые позволяют писать программы по-разному в зависимости от контекста и задачи. Один из таких подходов — объектно-ориентированное программирование. Рассказываем, что такое парадигма ООП, его структура, принципы, преимущества.
Что такое ООП
Объектно-ориентированное программирование – это подход, при котором вся программа рассматривается как набор взаимодействующих друг с другом объектов. При этом нам важно знать их характеристики.
У каждого объекта в системе есть свойства и поведение, как и у любого реального объекта. Например, рассмотрим объект «машина». У него есть свойства (цвет, вес, стоимость) и поведение (машина может ехать, сигналить, потреблять топливо).
Такой подход помогает строить сложные системы более просто и естественно благодаря тому, что вся предметная область разбивается на объекты и каждый из них слабо связан с другими объектами. Слабая связанность возникает вследствие соблюдения трех принципов: инкапсуляции, наследования и полиморфизма.
- Инкапсуляция – сокрытие поведения объекта внутри него. Объекту «водитель» не нужно знать, что происходит в объекте «машина», чтобы она ехала. Это ключевой принцип ООП.
- Наследование. Есть объекты «человек» и «водитель». У них есть явно что-то общее. Наследование позволяет выделить это общее в один объект (в данном случае более общим будет человек), а водителя — определить как человека, но с дополнительными свойствами и/или поведением. Например, у водителя есть водительские права, а у человека их может не быть.
- Полиморфизм – это переопределение поведения. Можно снова рассмотреть «человека» и «водителя», но теперь добавить «пешехода». Человек умеет как-то передвигаться, но как именно, зависит от того, водитель он или пешеход. То есть у пешехода и водителя схожее поведение, но реализованное по-разному: один перемещается ногами, другой – на машине.
ООП позволяет упростить сложные объекты, составляя их из более маленьких и простых, поэтому над программой могут работать сотни разработчиков, каждый из которых занят своим блоком. Большинство современных языков программирования — объектно-ориентированные, и, однажды поняв суть, вы сможете освоить сразу несколько языков.

Структура объектно-ориентированного программирования
1. Объект.
2. Класс.
3. Метод.
4. Атрибут.

class Item {
private String name;
private String price;
public Item(String name,
String price){
this.name = name;
this.price = price;
}
public void card() {
System.out.println(this.
name + " стоит " + this.price);
}
}
class Phone extends Item {
public Phone(String price){
super("Телефон",price);
}
}
public class Main {
public static void main(String
args[]) {
Phone1 = new Phone("30000");
}
}
Phone1.card();
Основные принципы объектно-ориентированного программирования
В этом принципе — вся суть объектно-ориентированного программирования.
Разработчик создаёт:
● Класс с определёнными свойствами;
● Подкласс на его основе, который берёт свойства класса и добавляет свои;
● Объект подкласса, который также копирует его свойства и добавляет свои.
Каждый дочерний элемент наследует методы и атрибуты, прописанные в родительском. Он может использовать их все, отбросить часть или добавить новые. При этом заново прописывать эти атрибуты и методы не нужно.
Например, в каталоге товаров:
- У класса «Карточка товара» есть атрибуты тип товара, название, цена, производитель, а также методы «Вывести карточку» и «Обновить цену».
- Подкласс «Смартфон» берёт все атрибуты и методы, записывает в атрибут «тип товара» слово «смартфон плюс добавляет свои атрибуты — «Количество сим-карт» и «Ёмкость аккумулятора».
- Объект «Смартфон Xiaomi 11» заполняет все атрибуты своими значениями и может использовать методы класса «Карточка товара».
Преимущества и недостатки ООП
Преимущества
Недостатки
Популярные языки объектно-ориентированного программирования
Сами по себе языки не могут быть объектно-ориентированными. ООП — это парадигма, которую можно применять для написания кода на любом языке.
Определённые языки подходят для использования объектно-ориентированного программирования больше, так как предоставляют удобные инструменты для работы с классами и объектами:
● Java;
● Go;
● Python;
● C++;
● JavaScript;
● C#;
● PHP;
● Ruby;
● Scala;
● Kotlin;
● Swift;
● Dart.
Главное об ООП
- ООП — это парадигма разработки, набор правил и критериев, по которым пишут код. Её суть в том, что весь код состоит из объектов, которые взаимодействуют друг с другом. Существуют и другие парадигмы, например, функциональное программирование.
- В ООП выделяют четыре основных элемента: классы, объекты, методы и атрибуты.
- Объектно-ориентированный подход к программированию строится на трёх основных принципах: наследование, инкапсуляция и полиморфизм.
- Программы, созданные по принципам ООП, более структурированные, легче читаются и хорошо масштабируются. При этом они сложнее в написании.
- В парадигме ООП удобнее всего писать на языках Java, C++, C#, JavaScript и некоторых других.
