Другие языки программирования и технологии

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

Всем привет. Объясните что такое ООП, и как вообще оно проявляется. Если я например знаю Php, я знаю ооп?
Я очень прошу постараться объяснить доступным языком. т. к. этот вопрос волнует многих, и думаю люди не раз вглянут на ваш, бущучи развёрнутый ответ по этому вопросу. Спасибо!
Так никто нормально и не ответил!
Три признака ООП: инкапсуляция, наследование и полиморфизм. - Я просто мечтала о таком ответе! Теперь мне все ясно про ООП!
Хотя нет, просветление я получила услышав "парадигма основанная на понятиях... " Чел, ты хотя бы запятые правильно научись расставлять!
Я не претендую на подобную гениальность и отвечу проще:
относительно php, если ты при написании кода создаешь классы и используешь конструкции $myClass->myVar, то ты работаешь с ООП. Тут все ссылки на C++ делают, потому что начиная с C++, весь язык C - объектно ориентированный. Там по другому нельзя, особенно в C#.
В php, который предназначен в основном для создания HTML-страниц и в 99.99% возвращает строку, часть ООП используется только для удобства структуризации данных, чтобы в одой переменной хранить и параметры и функции. Все эти задачи можно решить и с помощью функций. А вот для задач, связанных с системами объектов - уже без ООП не обойтись. DOM документа, система частиц, структура организации...
Александр Железняк
Александр Железняк
4 226
Лучший ответ
Speccc Speccc Не будьте так наивны.Формат ответов не предполагает изложение учебников)).Я просто дал критерий знания ООП, не больше.Мэтры эту тему разовьют.
http://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование

"Современный объектно-ориентированный язык предлагает, как правило, следующий обязательный набор синтаксических средств:
- Объявление классов с полями (данными — членами класса) и методами (функциями — членами класса) .
- Механизм расширения класса (наследования) — порождение нового класса от существующего с автоматическим включением всех особенностей реализации класса-предка в состав класса-потомка. Большинство ООП-языков поддерживают только единичное наследование.
- Полиморфные переменные и параметры функций (методов) , позволяющие присваивать одной и той же переменной экземпляры различных классов.
- Полиморфное поведение экземпляров классов за счёт использования виртуальных методов. В некоторых ООП-языках все методы классов являются виртуальными.
Видимо, минимальным традиционным объектно-ориентированным языком можно считать язык Оберон, который не содержит никаких других объектных средств, кроме вышеперечисленных (в исходном Обероне даже нет отдельного ключевого слова для объявления класса, а также отсутствуют явно описываемые методы, их заменяют поля процедурного типа) . Но большинство языков добавляют к указанному минимальному набору те или иные дополнительные средства. В их числе:
- Конструкторы, деструкторы, финализаторы.
- Свойства (аксессоры) .
- Индексаторы.
- Интерфейсы (например, в Java используются также как альтернатива множественному наследованию — любой класс может реализовать сколько угодно интерфейсов) .
- Переопределение операторов для классов.
- Средства защиты внутренней структуры классов от несанкционированного использования извне. Обычно это модификаторы доступа к полям и методам, типа public, private, обычно также protected, иногда некоторые другие.
Часть языков (иногда называемых «чисто объектными» ) целиком построена вокруг объектных средств — в них любые данные (возможно, за небольшим числом исключений в виде встроенных скалярных типов данных) являются объектами, любой код — методом какого-либо класса, и невозможно написать программу, в которой не использовались бы объекты. Примеры подобных языков — Smalltalk, Java, C#, Ruby, AS3, 1Cик. Другие языки (иногда используется термин «гибридные» ) включают ООП-подсистему в исходно процедурный язык. В них существует возможность программировать, не обращаясь к объектным средствам. Классические примеры — C++, Delphi, Python, PHP и Perl."
С*
Саша ***
85 982
Ты можешь знать php и не знать ООП. В php зачатки его появились в 4-й ветке, в пятой развились, а потом ещё нифигически развились в одной из подверсий, так что если кто учился по четвёртому и немного читал про пятый, то впору учиться заново.
http://php.net/OOP
Читай.
Иван Горничар
Иван Горничар
89 559
Кратко ООП - это способ программирования с обьектами.Обьекты в ООП это абстракция реальных или вымышленных обьектов реального мира.Преимущество состоит в закрытости и целостности обьекта, а также упрощении программирования его использования( не нужно глубоко знать , как работает обьект), его просто юзают.
Три признака ООП: инкапсуляция, наследование и полиморфизм.Если их знаешь и понимаешь- ты знаешь ООП.Очень хороший учебник по ООП С++ для полных новичков:
Speccc Speccc
Speccc Speccc
35 996
Виктор Матвийчук зачем нужны классы, если есть структуры?
Молодец. По крайней мере удостоился написать вопрос внятный и с пояснениями! Таких мало (

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

Раньше программирование было процедурным. То есть с верху в низ по строчкам выполнялись команды - процедуры.

И были функции: если какая то процедура очень часто повторяется или нуждается в большом количестве, или размере переменных то такие процедуры объединяли в функции. Так как после отработки функции её содержимое можно разрушить и освободить память (хотя вообще там много чего можно: -).

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

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

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

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

Класс - некая абстрактная сущность, у которой есть поля (глобальные переменные внутри класса) и методы (те же функции) .

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

Есть 3 основных принципа ООП: инкапсуляция, наследование и полиморфизм. Используя например наследование можно расширить класс гуманоид классом человек. То есть не создавать опять все те же поля и методы, которые есть у гуманоида, а указать, что класс "человек" дополняет (наследует) класс "гуманоид". И теперь класс "человек" может внести больше конкретики. Например, что у него есть имя и фамилия, проживает там-то и т. д.
Ето такая парадигма основанная на понятиях класса и объекта)))))
В общем, это работа с классами и методами (функциями)!
Л)
Леха )
247

Похожие вопросы