Здравствуйте. Давно понял, что такое ООП. Речь пойдет ЯП - Пайтон.
Могу ли я считать ООП переписание, например, змейки, на отдельные функции. Возьмём не рабочий, а лишь логический пример.
Функция 1:
Реализация самой змейки
Функция 2:
Логика
И другое.
Python
ООП, правильно ли мое понимание?
Нет, функции - это не ООП. ООП - это когда данные (поля) и все функции, непосредственно работающие с этими данными (методы), объединены в одну сущность - объект. А сама программа создаётся как взаимодействие составляющих её объектов.
И совершенно неважно, сколько файлов у тебя будет. Дело не в файлах, а в том, что программа должна быть разделена на логически независимые части-объекты. Так, чтобы изменение кода внутри одного объекта никак не влияло на работу всех прочих объектов.
Например, первый объект занимается вводом с клавиатуры и передаёт информацию об изменении направления движения объекту, управляющему состоянием змейки. Объект, управляющий состоянием змейки, хранит положение каждого сегмента змейки на игровом поле, управляет изменением длины и положения змейки и при изменении положения головы / хвоста передаёт эту информацию объекту, который отрисовывает змейку на экране.
При этом первый объект вообще не знает, что такое "змейка", а второй объект не знает, что такое экран - только размер игрового поля.
И совершенно неважно, сколько файлов у тебя будет. Дело не в файлах, а в том, что программа должна быть разделена на логически независимые части-объекты. Так, чтобы изменение кода внутри одного объекта никак не влияло на работу всех прочих объектов.
Например, первый объект занимается вводом с клавиатуры и передаёт информацию об изменении направления движения объекту, управляющему состоянием змейки. Объект, управляющий состоянием змейки, хранит положение каждого сегмента змейки на игровом поле, управляет изменением длины и положения змейки и при изменении положения головы / хвоста передаёт эту информацию объекту, который отрисовывает змейку на экране.
При этом первый объект вообще не знает, что такое "змейка", а второй объект не знает, что такое экран - только размер игрового поля.
Андрей Богдашкин
Сущность объект может состоять из функций и скажем структуры данных, или блока с переменными.
Объектно-ориентированное программирование (сокращенно ООП) — это парадигма разработки программных систем, в которой приложения состоят из объектов. Объекты — это сущности, у которых есть свойства и поведение.
Нуржан Кадирсизов
Если, к примеру, код у меня будет состоять из 7 файлов, состоящих из кода. 6 из 7 исходников будут являться полноценными системами. Седьмая будет вызывать другие файлы, которые в итоге будут являться программой. Это и есть ООП? после я обязательно почитаю книгу, связанную с ООП, но, я лишь хочу спросить, верно ли это утверждение.
нет, растащить код по функциям - это не объектно-ориентированное программирование.
можно было бы реализовать змейку в рамках объектно-ориентированного программирования, если бы объект "змейка" ползал по объекту "игровое поле" и хавал объект "яблоко", но это здесь непринципиально. ну, объекты и объекты, никаких преимуществ перед структурами и функциями.
основная мощь, предоставляемая объектно-ориентированным программированием - это инкапсуляция, наследование и полиморфизм. эти три кита делают использование объектов целесообразным. если бы объекты "ужик" и "питончик" были наследниками объекта "змейка", и содержали бы в себе какие-то разные модели поведения при втыкании в объекты "яблоко" или "мышка" (наследники объекта "добыча"), то это всё имело бы смысл, а так...
можно было бы реализовать змейку в рамках объектно-ориентированного программирования, если бы объект "змейка" ползал по объекту "игровое поле" и хавал объект "яблоко", но это здесь непринципиально. ну, объекты и объекты, никаких преимуществ перед структурами и функциями.
основная мощь, предоставляемая объектно-ориентированным программированием - это инкапсуляция, наследование и полиморфизм. эти три кита делают использование объектов целесообразным. если бы объекты "ужик" и "питончик" были наследниками объекта "змейка", и содержали бы в себе какие-то разные модели поведения при втыкании в объекты "яблоко" или "мышка" (наследники объекта "добыча"), то это всё имело бы смысл, а так...
*на*сайте*___*kg*boy* _
При наличии композиции наследование не требуется.
есть статья в вики
Объектно-ориентированное программирование
там всё расписано!
---
"Могу ли я считать "
Да, это гарантировано конституцией
правильно ли твоё мнение? нет
--
одна из существенных черт программирования - четкие правила.
Объектно-ориентированное программирование
там всё расписано!
---
"Могу ли я считать "
Да, это гарантировано конституцией
правильно ли твоё мнение? нет
--
одна из существенных черт программирования - четкие правила.
ну типа, в питоне это как бы просто красивая структуризация кода, ничего больше
Похожие вопросы
- ООП, питон, книги
- Простое объяснение что такое ООП
- Важен ли ООП в Machine Learning на python?
- почему самоучилка по программированию для чайников сложна в понимании обычным человеком, не подготовленном к этому?
- Какие есть полезные решения для анализы и понимания естественного языка. Есть ли диалоговые программы на ЕЯ
- Помогите с Python, что я тут не правильно написал? Это займет максимум 2 минуты
- Помогите чайнику в Питоне. Как правильно перейти на другую строку в коде, чтоб он не запустился раньше времени?
- Помогите составить программу. Что-написал, но не правильно.
- Что-то не получается дописать правильно код на Питоне
- Правильно ли я решил задачу?