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

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

Большинство языков программирования представляют собой сочетание различных способов написания компьютерных программ. Например, Python позволяет писать компьютерные программы как в объектно-ориентированном программировании, так и в процедурном. Существует множество языков программирования, которые позволяют писать компьютерные программы в ООП, например, некоторые из этих языков программирования: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python и др.

Особенности

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

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

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

Примеры

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

Питон

Этот код на Пайтоне.

class Human(object): def __init__(self, name, friend=None): self. name = name self. friend = friend def say_name(self): print("Мое имя "+self. name) def say_goodnight(self): if self. friend is None: print("Спокойной ночи никому.") else: print("Спокойной ночи "+self. friend". name) # Создайте новый Человеческий объект по имени stephen с именем "Stephen" stephen = Human("Стивен") # Создайте новый Человеческий объект по имени joe с именем "Joe" и stephen в качестве друга joe = Human("Джо", stephen) stephen. say_name() # Показывает "Меня зовут Стивен" Стивен. say_goodnight() # Показывает "Спокойной ночи никому." Джо. say_name() # Показывает "Меня зовут Джо" Джо. say_goodnight() # Показывает "Спокойной ночи Стивен

Java

Этот код на Java.

Человеческий класс

класс Human { private String name = "безымянный"; // имя этого человека private human friend = null; // друг человека // этот метод создает новый человеческий объект при задании имени и друга публично Human(имя строки, друг человека) { this. name = name; this. friend = friend;      } // Этот метод также создает новый Человеческий объект, если только ему присвоено имя публичного Человеческого (Строковое имя) { this. name = name; this. friend = null;      } // Этот метод создает новый Человеческий объект, если не задан ни его имя, ни его друг public Human() { this. name = "безымянный"; this. friend = null;      } public void sayName() { System. out. println("Мое имя " + this. name); } public void sayGoodnight() { if (friend == null) { System. out. println("Спокойной ночи никому.");          } else { System. out. println("Спокойной ночи " + friend. name);          } } }

Метод разговора с классом человека выше

класс Main { public static void main(String[] args) { // Создайте новый Human object stephen с именем "Stephen" Human stephen = new Human ("Стивен"); // Создайте новое Human object joe с именем "Joe" и stephen в качестве друга Human joe = new Human ("Джо", stephen); stephen. sayName(); // Показывает "Меня зовут Стивен" Стивен. sayGoodnight(); // Показывает "Спокойной ночи никому" Джо. sayName(); // Показывает "Меня зовут Джо" Джо. sayGoodnight(); // Показывает "Спокойной ночи Стивен"      } }

Критика

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

  • Лука Карделли написал статью под названием "Плохие инженерные свойства объектно-ориентированных языков".
  • Ричард Столлман писал в 1995 году: "Добавление ООП в Emacs не является явным улучшением; я использовал ООП при работе над оконными системами Lisp Machine, и я не согласен с обычной точкой зрения, что это лучший способ программирования".
  • Исследование Потока и др. говорит о том, что между ООП и процедурными подходами существует очень небольшая разница в производительности.
  • Кристофер Дж. Дэйт сказал, что сравнивать ООП с другими вещами, особенно с тем, как ООП и другие вещи связаны друг с другом, трудно, потому что люди не согласны со значением ООП.
  • Александр Степанов предположил, что ООП дает точку зрения, ограниченную в математике, и назвал ее "почти такой же розыгрыш, как искусственный интеллект".
  • Пол Грэм, успешный интернет-продавец и программист, предположил, что цель ООП - действовать как пастушеский механизм, который удерживает средних программистов в средних организациях от "нанесения слишком большого ущерба". Это также замедляет работу более быстрых, лучших программистов, которые знают, как делать вещи более мощным и компактным способом... [1]

Вопросы и ответы

В: Что такое объектно-ориентированное программирование?


О: Объектно-ориентированное программирование - это способ написания компьютерных программ с использованием "объектов" для обозначения данных и методов.

В: Чем объектно-ориентированное программирование отличается от процедурного программирования?


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

В: Какую пользу объектно-ориентированное программирование приносит разработчикам?


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

В: Чем известен язык программирования Python?


О: Python позволяет писать компьютерные программы как в объектно-ориентированном программировании, так и в процедурном программировании.

В: Можете ли Вы привести примеры языков программирования, которые позволяют писать компьютерные программы в объектно-ориентированном программировании?


О: Языки программирования, позволяющие писать компьютерные программы в объектно-ориентированном программировании, включают C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C# и т.д.

В: Что такое объекты в объектно-ориентированном программировании?


О: Объекты - это сущности в объектно-ориентированном программировании, которые содержат данные и методы.

В: Как работают объекты в объектно-ориентированном программировании?


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

AlegsaOnline.com - 2020 / 2023 - License CC3