Всем привет. Объясните что такое ООП, и как вообще оно проявляется. Если я например знаю Php, я знаю ооп?
Я очень прошу постараться объяснить доступным языком. т. к. этот вопрос волнует многих, и думаю люди не раз вглянут на ваш, бущучи развёрнутый ответ по этому вопросу. Спасибо!
Другие языки программирования и технологии
Объектно ориентированное программирование. (ООП)
Так никто нормально и не ответил!
Три признака ООП: инкапсуляция, наследование и полиморфизм. - Я просто мечтала о таком ответе! Теперь мне все ясно про ООП!
Хотя нет, просветление я получила услышав "парадигма основанная на понятиях... " Чел, ты хотя бы запятые правильно научись расставлять!
Я не претендую на подобную гениальность и отвечу проще:
относительно php, если ты при написании кода создаешь классы и используешь конструкции $myClass->myVar, то ты работаешь с ООП. Тут все ссылки на C++ делают, потому что начиная с C++, весь язык C - объектно ориентированный. Там по другому нельзя, особенно в C#.
В php, который предназначен в основном для создания HTML-страниц и в 99.99% возвращает строку, часть ООП используется только для удобства структуризации данных, чтобы в одой переменной хранить и параметры и функции. Все эти задачи можно решить и с помощью функций. А вот для задач, связанных с системами объектов - уже без ООП не обойтись. DOM документа, система частиц, структура организации...
Три признака ООП: инкапсуляция, наследование и полиморфизм. - Я просто мечтала о таком ответе! Теперь мне все ясно про ООП!
Хотя нет, просветление я получила услышав "парадигма основанная на понятиях... " Чел, ты хотя бы запятые правильно научись расставлять!
Я не претендую на подобную гениальность и отвечу проще:
относительно php, если ты при написании кода создаешь классы и используешь конструкции $myClass->myVar, то ты работаешь с ООП. Тут все ссылки на C++ делают, потому что начиная с C++, весь язык C - объектно ориентированный. Там по другому нельзя, особенно в C#.
В php, который предназначен в основном для создания HTML-страниц и в 99.99% возвращает строку, часть ООП используется только для удобства структуризации данных, чтобы в одой переменной хранить и параметры и функции. Все эти задачи можно решить и с помощью функций. А вот для задач, связанных с системами объектов - уже без ООП не обойтись. DOM документа, система частиц, структура организации...
Speccc Speccc
Не будьте так наивны.Формат ответов не предполагает изложение учебников)).Я просто дал критерий знания ООП, не больше.Мэтры эту тему разовьют.
http://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование
"Современный объектно-ориентированный язык предлагает, как правило, следующий обязательный набор синтаксических средств:
- Объявление классов с полями (данными — членами класса) и методами (функциями — членами класса) .
- Механизм расширения класса (наследования) — порождение нового класса от существующего с автоматическим включением всех особенностей реализации класса-предка в состав класса-потомка. Большинство ООП-языков поддерживают только единичное наследование.
- Полиморфные переменные и параметры функций (методов) , позволяющие присваивать одной и той же переменной экземпляры различных классов.
- Полиморфное поведение экземпляров классов за счёт использования виртуальных методов. В некоторых ООП-языках все методы классов являются виртуальными.
Видимо, минимальным традиционным объектно-ориентированным языком можно считать язык Оберон, который не содержит никаких других объектных средств, кроме вышеперечисленных (в исходном Обероне даже нет отдельного ключевого слова для объявления класса, а также отсутствуют явно описываемые методы, их заменяют поля процедурного типа) . Но большинство языков добавляют к указанному минимальному набору те или иные дополнительные средства. В их числе:
- Конструкторы, деструкторы, финализаторы.
- Свойства (аксессоры) .
- Индексаторы.
- Интерфейсы (например, в Java используются также как альтернатива множественному наследованию — любой класс может реализовать сколько угодно интерфейсов) .
- Переопределение операторов для классов.
- Средства защиты внутренней структуры классов от несанкционированного использования извне. Обычно это модификаторы доступа к полям и методам, типа public, private, обычно также protected, иногда некоторые другие.
Часть языков (иногда называемых «чисто объектными» ) целиком построена вокруг объектных средств — в них любые данные (возможно, за небольшим числом исключений в виде встроенных скалярных типов данных) являются объектами, любой код — методом какого-либо класса, и невозможно написать программу, в которой не использовались бы объекты. Примеры подобных языков — Smalltalk, Java, C#, Ruby, AS3, 1Cик. Другие языки (иногда используется термин «гибридные» ) включают ООП-подсистему в исходно процедурный язык. В них существует возможность программировать, не обращаясь к объектным средствам. Классические примеры — C++, Delphi, Python, PHP и Perl."
"Современный объектно-ориентированный язык предлагает, как правило, следующий обязательный набор синтаксических средств:
- Объявление классов с полями (данными — членами класса) и методами (функциями — членами класса) .
- Механизм расширения класса (наследования) — порождение нового класса от существующего с автоматическим включением всех особенностей реализации класса-предка в состав класса-потомка. Большинство ООП-языков поддерживают только единичное наследование.
- Полиморфные переменные и параметры функций (методов) , позволяющие присваивать одной и той же переменной экземпляры различных классов.
- Полиморфное поведение экземпляров классов за счёт использования виртуальных методов. В некоторых ООП-языках все методы классов являются виртуальными.
Видимо, минимальным традиционным объектно-ориентированным языком можно считать язык Оберон, который не содержит никаких других объектных средств, кроме вышеперечисленных (в исходном Обероне даже нет отдельного ключевого слова для объявления класса, а также отсутствуют явно описываемые методы, их заменяют поля процедурного типа) . Но большинство языков добавляют к указанному минимальному набору те или иные дополнительные средства. В их числе:
- Конструкторы, деструкторы, финализаторы.
- Свойства (аксессоры) .
- Индексаторы.
- Интерфейсы (например, в Java используются также как альтернатива множественному наследованию — любой класс может реализовать сколько угодно интерфейсов) .
- Переопределение операторов для классов.
- Средства защиты внутренней структуры классов от несанкционированного использования извне. Обычно это модификаторы доступа к полям и методам, типа public, private, обычно также protected, иногда некоторые другие.
Часть языков (иногда называемых «чисто объектными» ) целиком построена вокруг объектных средств — в них любые данные (возможно, за небольшим числом исключений в виде встроенных скалярных типов данных) являются объектами, любой код — методом какого-либо класса, и невозможно написать программу, в которой не использовались бы объекты. Примеры подобных языков — Smalltalk, Java, C#, Ruby, AS3, 1Cик. Другие языки (иногда используется термин «гибридные» ) включают ООП-подсистему в исходно процедурный язык. В них существует возможность программировать, не обращаясь к объектным средствам. Классические примеры — C++, Delphi, Python, PHP и Perl."
Ты можешь знать php и не знать ООП. В php зачатки его появились в 4-й ветке, в пятой развились, а потом ещё нифигически развились в одной из подверсий, так что если кто учился по четвёртому и немного читал про пятый, то впору учиться заново.
http://php.net/OOP
Читай.
http://php.net/OOP
Читай.
Кратко ООП - это способ программирования с обьектами.Обьекты в ООП это абстракция реальных или вымышленных обьектов реального мира.Преимущество состоит в закрытости и целостности обьекта, а также упрощении программирования его использования( не нужно глубоко знать , как работает обьект), его просто юзают.
Три признака ООП: инкапсуляция, наследование и полиморфизм.Если их знаешь и понимаешь- ты знаешь ООП.Очень хороший учебник по ООП С++ для полных новичков:
Три признака ООП: инкапсуляция, наследование и полиморфизм.Если их знаешь и понимаешь- ты знаешь ООП.Очень хороший учебник по ООП С++ для полных новичков:

Виктор Матвийчук
зачем нужны классы, если есть структуры?
Молодец. По крайней мере удостоился написать вопрос внятный и с пояснениями! Таких мало (
Объект в программировании - то же что и в жизни.
Раньше программирование было процедурным. То есть с верху в низ по строчкам выполнялись команды - процедуры.
И были функции: если какая то процедура очень часто повторяется или нуждается в большом количестве, или размере переменных то такие процедуры объединяли в функции. Так как после отработки функции её содержимое можно разрушить и освободить память (хотя вообще там много чего можно: -).
Но поводимому такой подход не был столь хорош и придумали объекты. Объединяющие в себе кучу взаимосвязанных: переменных, функций (методов объекта) . То есть объект имеет много возможностей описанных программистом. И при всем при этом к нему очень легко обратиться.
Когда обращаешься к объекту передавая в него какие то данные, может отработать огромное количество его функций и результат останется в его собственных переменных. Такая вещь с обычными функциями не прокатит (и перегрузки или рекурсии тут все равно непомогут) .
аналог - автомобиль: в него можно залить бензин и тогда завести, включить передачу и начнут вращаться ходовые колеса.
В общем все призвано сделать программирование легче.
Объект в программировании - то же что и в жизни.
Раньше программирование было процедурным. То есть с верху в низ по строчкам выполнялись команды - процедуры.
И были функции: если какая то процедура очень часто повторяется или нуждается в большом количестве, или размере переменных то такие процедуры объединяли в функции. Так как после отработки функции её содержимое можно разрушить и освободить память (хотя вообще там много чего можно: -).
Но поводимому такой подход не был столь хорош и придумали объекты. Объединяющие в себе кучу взаимосвязанных: переменных, функций (методов объекта) . То есть объект имеет много возможностей описанных программистом. И при всем при этом к нему очень легко обратиться.
Когда обращаешься к объекту передавая в него какие то данные, может отработать огромное количество его функций и результат останется в его собственных переменных. Такая вещь с обычными функциями не прокатит (и перегрузки или рекурсии тут все равно непомогут) .
аналог - автомобиль: в него можно залить бензин и тогда завести, включить передачу и начнут вращаться ходовые колеса.
В общем все призвано сделать программирование легче.
Если простым языком, то ООП грубо говоря - принцип программирования, который присутствует почти во всех современных языках программирования. Если раньше для структурируемости и не повторяемости кода создавали функции, то теперь создают классы.
Класс - некая абстрактная сущность, у которой есть поля (глобальные переменные внутри класса) и методы (те же функции) .
Например, если описывать человека используя ООП, то можно создать класс "гуманоид". У гуманоида есть характеристики, такие как цвет, возраст, рост - это и есть поля класса. Также гуманоид может бегать, прыгать, дышать - это методы, то есть действия, которые может совершать объект.
Есть 3 основных принципа ООП: инкапсуляция, наследование и полиморфизм. Используя например наследование можно расширить класс гуманоид классом человек. То есть не создавать опять все те же поля и методы, которые есть у гуманоида, а указать, что класс "человек" дополняет (наследует) класс "гуманоид". И теперь класс "человек" может внести больше конкретики. Например, что у него есть имя и фамилия, проживает там-то и т. д.
Класс - некая абстрактная сущность, у которой есть поля (глобальные переменные внутри класса) и методы (те же функции) .
Например, если описывать человека используя ООП, то можно создать класс "гуманоид". У гуманоида есть характеристики, такие как цвет, возраст, рост - это и есть поля класса. Также гуманоид может бегать, прыгать, дышать - это методы, то есть действия, которые может совершать объект.
Есть 3 основных принципа ООП: инкапсуляция, наследование и полиморфизм. Используя например наследование можно расширить класс гуманоид классом человек. То есть не создавать опять все те же поля и методы, которые есть у гуманоида, а указать, что класс "человек" дополняет (наследует) класс "гуманоид". И теперь класс "человек" может внести больше конкретики. Например, что у него есть имя и фамилия, проживает там-то и т. д.
Ето такая парадигма основанная на понятиях класса и объекта)))))
В общем, это работа с классами и методами (функциями)!
Похожие вопросы
- Конец объектно-ориентированному программированию? Переходим от “черных” ящиков к ”белым” и ”прозрачным” ящикам?
- Зачем нужно ООП? Зачем нужно объектно-ориентированное программирование?
- Применение ООП (Объектно-ориентированное-программирование)
- Кто-будь доступно может объяснить что же такое Объектно ориентированное программирование?
- Объектно-ориентированное программирование. Программа и ее интерфейс.
- Что из себя представляет объектно-ориентированное программирование, как выглядит (своими словами, пожалуйста)?
- Языки объектно-ориентированного программирования общая характеристика?
- Что такое объектно-ориентированное программирование?
- Объясните что такое объектно-ориентированное программирование просто и понятно, желательно с примерами (с++)
- Стоит ли пользоваться Объектно-ориентированным программированием ?