ООП от процедурного поколения отличается наличием классов и объектов.
Класс можно рассматривать как подпрограмму, которая содержит в себе свои данные (в ООП поля) и функции (в ООП методы).
Хотя более обычной формулировкой считается, что это отражает какой-нибудь объект.
И в программе можно создавать экземпляры классов - объекты, с которыми можно играться.
Как уже сказали, при помощи классов можно разбить программу на независимые части.
------
По моему субъективному мнению, ООП полезно в средних и больших программах, когда уже функций многовато и переменных и чтобы не держать в голове что делают все функции и за что отвечают все глобальные переменные, лучше сделать классы, использовать разные прелести ООП (Абстракиця, Инкапсуляция, Наследование, Полиморфизм). А в маленьких программах ООП может усложнить жизнь (привет Java и C#).
К тому же кидать новичков сразу в ООП как-то дико.
Другие языки программирования и технологии
Чем объектно-ориентированное программирование отличается от процедурного?
Реально - почти ничем. Просто позволяет разделить программу на независимые части - классы. Посмотри языки Oberon или Go - там очень хорошо видно, что ООП - всего лишь надстройка над процедурами.
Пример из java.
Создаём объект Human - человека:
Human hum = new Human(23,"Петя");
Где передали параметры 23 (возраст) и "Петя" (имя) в конструктор. Эти параметры сохранены в объекте hum в его полях. Теперь вызываем для данного объекта функцию, которая имеет доступ к полям объекта.
int age = hum.getAge(); функция getAge, вызванная у объекта hum типа Human, вернула его возраст. Вызываем другой метод: hum.kill();
Теперь создаем наследника классу Human, назовём его Child. Child является Human, но может переопределить методы класса Human и добавить новые, таким образом расширить класс и изменить.
Human hum2 = new Child(5,"Вася",hum); тут у конструктора есть дополнительный параметр, где задаётся родитель ребёнка.
Теперь вызываем hum2.kill(); этот метод мог быть переопределен.
Интерфейсы: Есть интерфейсы comparable, cloneable, runnable и др. Интерфейс принуждает класс иметь в наличии опр. функционал (методы и т. д). comparable - объекты класса можно сравнивать (метод compare - больше, меньше или равен). Заранее написанный алгоритм сортировки может требовать от объектов класса быть сравнимыми между собой (comparable). Cloneable - объект можно скопировать методом clone. И т. д. и т. п. То есть наделяем функционалом, который должен быть реализован в классе.
Создаём объект Human - человека:
Human hum = new Human(23,"Петя");
Где передали параметры 23 (возраст) и "Петя" (имя) в конструктор. Эти параметры сохранены в объекте hum в его полях. Теперь вызываем для данного объекта функцию, которая имеет доступ к полям объекта.
int age = hum.getAge(); функция getAge, вызванная у объекта hum типа Human, вернула его возраст. Вызываем другой метод: hum.kill();
Теперь создаем наследника классу Human, назовём его Child. Child является Human, но может переопределить методы класса Human и добавить новые, таким образом расширить класс и изменить.
Human hum2 = new Child(5,"Вася",hum); тут у конструктора есть дополнительный параметр, где задаётся родитель ребёнка.
Теперь вызываем hum2.kill(); этот метод мог быть переопределен.
Интерфейсы: Есть интерфейсы comparable, cloneable, runnable и др. Интерфейс принуждает класс иметь в наличии опр. функционал (методы и т. д). comparable - объекты класса можно сравнивать (метод compare - больше, меньше или равен). Заранее написанный алгоритм сортировки может требовать от объектов класса быть сравнимыми между собой (comparable). Cloneable - объект можно скопировать методом clone. И т. д. и т. п. То есть наделяем функционалом, который должен быть реализован в классе.
ООП - самотык с ЧПУ
ПП - просто самотык
ПП - просто самотык
в объектном есть классы и объекты
в них внутри есть функции которые работают только для этого класса или объекта (экземпляра этого класса)
в процедурном классов нет и функции общие
в них внутри есть функции которые работают только для этого класса или объекта (экземпляра этого класса)
в процедурном классов нет и функции общие
Процедурное программирование - это типа как Нео, а объектно-ориентированное программирование - это агент Смит.




представлением неких абстракций (мат. моделей) в виде других абстракций (объектов), подчиняющимся неким принципам (всякие там инкапсуляции и другие страшные слова).
используй с++ или питон и пиши как хочешь...
Своим гемороем и нереально большим временем компиляции, по сути тот же частный случай ПП где передается скрытно параметр объекта класса (this)...
Похожие вопросы
- Конец объектно-ориентированному программированию? Переходим от “черных” ящиков к ”белым” и ”прозрачным” ящикам?
- Чем отличается объектно-ориентированное программирование от обычного?
- Кто-будь доступно может объяснить что же такое Объектно ориентированное программирование?
- Объектно-ориентированное программирование. Программа и ее интерфейс.
- Что из себя представляет объектно-ориентированное программирование, как выглядит (своими словами, пожалуйста)?
- Языки объектно-ориентированного программирования общая характеристика?
- Что такое объектно-ориентированное программирование?
- Объясните что такое объектно-ориентированное программирование просто и понятно, желательно с примерами (с++)
- Стоит ли пользоваться Объектно-ориентированным программированием ?
- Почему объектно-ориентированное программирование провалилось?