Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2022, 23:16   #1
bITA666
Форумчанин
 
Аватар для bITA666
 
Регистрация: 22.03.2019
Сообщений: 115
По умолчанию Общее пониманятие обьектно ориентированного программирования.

Всем здравствуйте. Не знаю правильно я написал заголовок или нет, надеюсь вы меня поймёте по моему изложению.

Я до сих пор не могу вникнуть в суть обьектно ориентированного программирования.

Возьмём какую нибудь программу 3D в ней можно создавать объёмные объекты из геометрических фигур.
Я могу их визуально увидеть.
Когда я читаю книгу про обьектно ориентированному программированию то сталкиваюсь с такими примерами как, создание объекта:

Пример класса Vehicle может выглядеть следующим образом:
Код:
puЫic class Vehicle {
    puЫic string model; // Название модели 
    puЫic string manufacturer; // Производ и тель 
    puЬlic int numOfDoors; // Количество дверей 
    puЬlic int numOfWheels; // Количество колес

    puЫic class Program { // Начало программы 
        static void Main ( string ( ] args) { // Приглашение пользователю 
            Console .WriteLine ( "Bвeдитe информацию о машине" ) ; // Создание экземпляра Vehicle 
            Vehicle myCar = new Vehicle ( ) ; // Ввод информации для членов класса
Если в 3D программе мы видим визуально созданную машину с ее параметрами, а когда создаём объект в обьектно ориентированном языке то мысленно можно её представить но какой смысл её создавать если в итоге мы её не увидим?!.

Или я чего-то не понимаю. Спасибо!

Последний раз редактировалось bITA666; 13.09.2022 в 23:29.
bITA666 вне форума Ответить с цитированием
Старый 14.09.2022, 01:32   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от bITA666 Посмотреть сообщение
но какой смысл её создавать если в итоге мы её не увидим?!
Напишите метод, который визуализирует вам машину по заданным свойствам.

Класс позволяет описать свойства объекта и действия над ним (визуализация может быть частным случаем такого действия, а может ее и не быть, объект не обязан быть видимым). Ничего общего с 3D объектом это не имеет. Хотя 3D объект можно описать в рамках ООП.
Arigato вне форума Ответить с цитированием
Старый 14.09.2022, 12:46   #3
bITA666
Форумчанин
 
Аватар для bITA666
 
Регистрация: 22.03.2019
Сообщений: 115
По умолчанию

Arigato, Я вас понял. Тогда где применим данный код? Вот мы создали объект машины в обьектно ориентированном языке что дальше? Как он будет реализован?

Последний раз редактировалось bITA666; 14.09.2022 в 12:49.
bITA666 вне форума Ответить с цитированием
Старый 14.09.2022, 13:12   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Это просто набор данных (свойств) и методы их обработки. К примеру, у вас есть интернет-магазин, где продаются машины. Каждая машина характеризуется набором свойств (марка, мощность двигателя, цвет и т.д.) - это свойства объекта (машины). Также могут быть реализованы методы, например, метод уменьшающий количество оставшихся на складе экземпляров.
Arigato вне форума Ответить с цитированием
Старый 14.09.2022, 13:28   #5
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

bITA666, а процедурное программирование вы уже умеете?
Valick вне форума Ответить с цитированием
Старый 14.09.2022, 13:29   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Каждая машина характеризуется набором свойств (марка, мощность двигателя, цвет и т.д.)
Так визуализацией тогда будет заниматься сайт и для нее вам в классе будет достаточно набора свойств с именами файлов.
macomics вне форума Ответить с цитированием
Старый 14.09.2022, 14:34   #7
bITA666
Форумчанин
 
Аватар для bITA666
 
Регистрация: 22.03.2019
Сообщений: 115
По умолчанию

macomics, Получается код совместим с другими программами, которые предоставляют визуализацию? Мы получаем только скелет а оболочку натягиваем другими программами?
bITA666 вне форума Ответить с цитированием
Старый 14.09.2022, 15:16   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

А что вы хотите от визуализации? Судя по приведенному коду, вы работаете в консоли, а потому вся визуализация, это вывести данные в текстовом формате.
Arigato вне форума Ответить с цитированием
Старый 14.09.2022, 15:18   #9
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от bITA666 Посмотреть сообщение
Получается код совместим с другими программами, которые предоставляют визуализацию?
Если в это понятие ("программа") включите даже ОС - тогда все сойдется. Любая прикладная программа содержит код визуализации как минимум для ОС. Скрипт для другой прикладной программы под ОС. Для визуализации в конце концов даже ОС использует оборудование через программу драйвер. И вся эта визуализация называется интерактивным интерфейсом (HID), которая предназначена для диалога программы с пользователем.

Если программа должна взаимодействовать с другими программами, тогда она может выполнять ввод/вывод в файл/трубу/сокет/порт/итд и не вести интерактивный диалог с пользователем (человеком). Хотя для этого взаимодействия также возможно создать классы. Достаточно просто представить другую программу как некоего пользователя.

Цитата:
Сообщение от bITA666 Посмотреть сообщение
Мы получаем только скелет а оболочку натягиваем другими программами?
Сам класс/объект это только набор данных и правили работы с этими данными, которые иерархически упорядочиваются и все эти возможности предоставляются пользователю (программисту).

На создании и расширении этого иерархического доступа к данным и основан принцип ООП. В конце концов это лишь систематизация переменных в оперативной памяти.

Последний раз редактировалось macomics; 14.09.2022 в 15:30.
macomics вне форума Ответить с цитированием
Старый 14.09.2022, 15:29   #10
bITA666
Форумчанин
 
Аватар для bITA666
 
Регистрация: 22.03.2019
Сообщений: 115
По умолчанию

Arigato, вы полностью правы. Но меня интересует можно ли консольный код использовать с иными программами. Когда говорят что на С# можно разрабатывать игры я немного не понимаю как это возможно. Потому что в моем понимании я могу только создавать текстовые консольные программы. Типа World.
bITA666 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# Основы объектно-ориентированного программирования xq1b Помощь студентам 1 10.10.2012 12:33
Элементы объектно-ориентированного программирования Nvd Помощь студентам 0 13.03.2011 15:03
ЭЛЕМЕНТЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ Nvd Помощь студентам 0 13.03.2011 14:37
ЭЛЕМЕНТЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ Nvd Помощь студентам 0 12.03.2011 12:00
Принципы объектно-ориентированного программирования. Silent_Hell Помощь студентам 1 25.05.2009 12:53