Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
Читал об этом и вот что понял...
Допустим есть физический объект автомобиль!
Он состоит из других объектов. Двигатель, ходовая и т.д.
Двигатель состоит из других объектов, поршень, коленвал, свечи, и т.д.
Получается:
Объект "автомобиль" состоит из других объектов.
У поршня есть "свойства" - функции, а сам поршень это - класс.
От сюда возникает вопрос! Я хоть что то понял?
Если есть ссылки на какой нибудь пример... Киньте.
Как представить в ооп калькулятор?
Кнопка - это объект? Операция умножения - это свойство?
dcc0
Отправлено: 02 Октября, 2014 - 09:49:32
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
Автомобиль тоже класс, принадлежит к классу транспортные средства,
двигатель тоже класс, принадлежит к классу двигателей внутреннего сгорания.
При этом объект автомобиль имеет метод - "ездить по дорогам общего пользования".
Самолет тоже принадлежит к классу транспортных средств, но при вызове для него метода "ездить по дорогам общего пользования" есть вероятность получения ошибки, если такая ситуация была смоделирована и описана в классе, методе или же самом объекте.
Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
Класс == объект?
dcc0
Отправлено: 02 Октября, 2014 - 10:16:13
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
В теории, я думаю, все можно рассматривать как класс, и как объект одновременно.
При этом один объект может принадлежать множеству классов, а все классы входить в один большой - "макрокласс", который в свою очередь является еще и объектом.
Более конкретно, важным вопросом оказывается вызов метода для того или иного объекта, скажем так, адекватность метода.
----- Март 2021. Бросил программирование
Sail
Отправлено: 02 Октября, 2014 - 10:26:20
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
Alex_dark74 пишет:
Класс == объект?
Класс, однако - понятие абстрактное. Объект - вполне конкретный экземпляр...
dcc0
Отправлено: 02 Октября, 2014 - 10:39:19
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
Но так как класс может рассматриваться как объект, то следует ввести понятие уровень абстракции.
Если мы абстрагировались от конкретного экземпляра, пришли к классу и рассматриваем его как объект, то можно абстрагироваться еще раз - рассматривать класс уровнем выше.
Вдобавок, получается, есть глобальные методы, есть локальные.
Класс Транспортные средства > метод - перемещение в пространстве:
"подкласс" автомобиль > метод - езда по дорогам |"подкласс" самолет > метод - летание по воздуху
Получается задача: описать классы, отношения классов, "локальные и глобальные методы".
Конкретный автомобиль с номером АА777Rus, на котором ты ездишь на дачу, будет экземпляром класса.
При этом класс может включать набор методов, которые вызываются по отношению к объекту =)
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
Можно и так рассматривать:
Класс >Пролетариат.
Метод > классовая борьба рабочих и крестьян.
Моторист Петр > экземпляр рабочих.
Крестьянин Иннокентий > экземпляр крестьян.
Владимир Ильич Ленин - > просто экземпляр со своими методами.
Можно попробовать на примере устройства и работы пакетного менеджера Linux рассмотреть классы, методы и объекты. Например, система Portage - класс пакетные менеджеры.
В ней есть объекты - ебилды, разделенные на подклассы.
Есть метод emerge, его можно рассматривать "как класс методов" применяемых к объекту ебилд.
P.S. Фактически это все та же вложенность, модульность, вызов метода к объекту можно рассматривать как применение функции к аргументу.
----- Март 2021. Бросил программирование
esterio
Отправлено: 02 Октября, 2014 - 12:05:29
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
обьект == екземпляр класса
тоесть класс это описание обьекта
обьект уже можно использовать (вызов методов, установка свойств и т.д.)
но клас без создания обьекта использовать нельзя (кроме статических)
Alex_dark74
Отправлено: 02 Октября, 2014 - 12:11:51
Частый гость
Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
Ну блин! Я думал, что все понял!!!
Оказывается ничего не понял. Опять запутался!
dcc0
Отправлено: 02 Октября, 2014 - 12:18:04
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
ну что здесь непонятного.
Класс - это описание. Объект - это сущность, созданная по описанию.
Описать можно свойства (какой?) и действия (как?)
Описываем свойство $color = red;
и действие (метод) function paint($newColor) { $this->color = $newColor; }
изначально красный объект перекрашиваем в другой цвет. Т.е. имеем описание некоего объекта красного цвета, который умеет перекрашиваться. Используем это
$object = new MyClass(); // красный объект
$object->paint(blue); // синий объект
вот и весь базовый ООП.
(о полиморфизме и наследовании мы поговорим на следующем занятии ) (Добавление)
Скачайте на торрентах курсы Специалиста по php (Уровень третий - как раз про ООП)
Очень хорошо все объясняет.
----- Чем больше узнаю, тем больше я не знаю.
dcc0
Отправлено: 02 Октября, 2014 - 13:21:20
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
Т.е. класс - инструкция по сборке стола.
Метод, расположение в нужном порядке и завинчивание саморезов.
Свойства - из одного набора по инструкции можно собрать компьютерный стол,
а можно стол для черчения.
Набор для сборки из Икеи - экземпляр класса.
Прочитали инструкцию, собрали - применили методы и свойства.
P.S. Если снова отвлечься от конкретики и поговорить о классификации,
то можно даже в рамках одной модели (по крайней мере языковой) представить и такую штуку.
Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014
Помог: 10 раз(а)
[+]
Слишком углубляться в аналогии вредно для понимания.
Пробежался по статье в вики - вполне доходчиво про класс и объекты, советую прочитать
[url]https://ru.wikipedia.org/wiki/Класс_(программирование)[/url]
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.