Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

ООП языки программирования

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

Определение 1

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

Основными свойствами ООП являются:

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

Свойства ООП. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Свойства ООП. Автор24 — интернет-биржа студенческих работ

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

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

Поля (внутренние свойства) объектов могут представлять собой как примитивы (числа, строки и т.п.), так и быть сложными объектами. Например, объект "Автомобиль" можно описать как совокупность объектов "Двигатель", "Трансмиссия", "Кузов", "Салон", "Колеса". Каждый из этих объектов сам по себе сложен. Например, в состав объекта "Двигатель" могут входить объекты "Блок цилиндров", "Поршни", "Коленвал" и т.п.

«ООП языки программирования» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Иерархия классов пользовательского интерфейса в Java. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Иерархия классов пользовательского интерфейса в Java. Автор24 — интернет-биржа студенческих работ

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

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

Наиболее популярные объектно-ориентированные языки программирования

Первыми успешными объектно-ориентированными языками считаются Симула-67 и Smalltalk-80. Расцвет популярности ООП пришелся на вторую половину 1980-х гг., когда появились такие языки, как С++, Objective C (эти два языка были разработаны на основе не являющегося объектно-ориентированным, но очень популярного Си), Eiffel. Некоторые существовавшие на тот момент языки были доработаны с целью предоставить своим приверженцам возможность работать в стиле ООП (Ada, Lisp, Pascal).

Большим шагом вперед в развитии ООП стал язык Java. Он сосредоточил в себе, помимо объектно-ориентированного подхода, наиболее эффективные технологии, появившиеся в начале 1990-х, такие, как:

  • ссылочный синтаксис: объекты создаются таким образом, чтобы невозможно было напрямую (через адреса ячеек памяти, т.н. указатели) повлиять на состояние этих объектов;
  • автоматическая сборка мусора: программист избавлен от необходимости вручную очищать память от переменных, которые больше не понадобятся;
  • кроссплатформенность - способность программ запускаться на различных платформах (слоган Java - "написано однажды - работает везде");
  • защита полей и методов от нежелательного влияния со стороны других классов: например, поле, помеченное как private, доступно для чтения и записи только изнутри класса, protected - только из иерархии, в состав которой входит класс, public - для любых объектов.

Дополнительным обстоятельством, сделавшим Java влиятельным и пригодным для коммерческого использования языком стало то, что его создание велось компанией Sun, обладавшей большими финансовыми и технологическими возможностями.

Всплеск популярности Java побудил другого крупного игрока на софтверном рынке - компанию Microsoft - создать аналогичные продукты. Сначала компания Билла Гейтса хотела выпустить "собственную версию" Java, однако, поскольку написанные на этом языке программы были рассчитаны на запуск лишь в среде Windows (терялась кроссплатформенность), со временем Microsoft решила разработать собственные фреймворк с похожими на Java свойствами. Так появилась платформа .NET и связанный с ней язык C# (Си-шарп). В настоящее время C# считается предпочтительным языком для разработки под Windows. При написании программ на нем применяется преимущественно объектно-ориентированный стиль разработки.

В настоящее время ООП нельзя назвать доминирующей парадигмой программирования. Из языков, бурно развивавшихся в годы наивысшего интереса к этой технологии, активно продолжают использоваться C++, Java, C#. Нынешние языки не делают основную ставку на ООП, но поддерживают эту возможность, поскольку среди программистов остается немало приверженцев этого подхода. Так, объектно-ориентированные программы можно писать на таких популярных в настоящее время языках, как Python, JavaScript, PHP и другие.

Популярные объектно-ориентированные <a href=языки программирования. Автор24 — интернет-биржа студенческих работ" />

Рисунок 3. Популярные объектно-ориентированные языки программирования. Автор24 — интернет-биржа студенческих работ

Пример программы в стиле ООП (JavaScript)

class Hello {

 constructor(){
 this.message = this.getMessage()
 }

 sayHello(){
 console.log(this.message)
 }

 getMessage(){return 'Hello, World!'}
}

class HelloRus extends Hello{ // Класс, расширяющий предыдущий.
 getMessage(){return 'Привет, Мир!'} // Переопределяем метод в классе-наследнике.
}

let hello = new Hello
hello.sayHello()

hello = new HelloRus
hello.sayHello()

Дата написания статьи: 29.04.2019
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot