Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Понятие ооп
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Понятие ооп

Страниц (1): [1]
 

1. Alex_dark74 - 02 Октября, 2014 - 08:16:16 - перейти к сообщению
Читал об этом и вот что понял...
Допустим есть физический объект автомобиль!
Он состоит из других объектов. Двигатель, ходовая и т.д.
Двигатель состоит из других объектов, поршень, коленвал, свечи, и т.д.
Получается:
Объект "автомобиль" состоит из других объектов.
У поршня есть "свойства" - функции, а сам поршень это - класс.
От сюда возникает вопрос! Я хоть что то понял?
Если есть ссылки на какой нибудь пример... Киньте.

Как представить в ооп калькулятор?
Кнопка - это объект? Операция умножения - это свойство?
2. dcc0 - 02 Октября, 2014 - 09:49:32 - перейти к сообщению
Автомобиль тоже класс, принадлежит к классу транспортные средства,
двигатель тоже класс, принадлежит к классу двигателей внутреннего сгорания.
При этом объект автомобиль имеет метод - "ездить по дорогам общего пользования".
Самолет тоже принадлежит к классу транспортных средств, но при вызове для него метода "ездить по дорогам общего пользования" есть вероятность получения ошибки, если такая ситуация была смоделирована и описана в классе, методе или же самом объекте.

В общем теория множеств.
3. Alex_dark74 - 02 Октября, 2014 - 09:59:16 - перейти к сообщению
Класс == объект?
4. dcc0 - 02 Октября, 2014 - 10:16:13 - перейти к сообщению
В теории, я думаю, все можно рассматривать как класс, и как объект одновременно.
При этом один объект может принадлежать множеству классов, а все классы входить в один большой - "макрокласс", который в свою очередь является еще и объектом.

Более конкретно, важным вопросом оказывается вызов метода для того или иного объекта, скажем так, адекватность метода.
5. Sail - 02 Октября, 2014 - 10:26:20 - перейти к сообщению
Alex_dark74 пишет:
Класс == объект?

Класс, однако - понятие абстрактное. Объект - вполне конкретный экземпляр...
6. dcc0 - 02 Октября, 2014 - 10:39:19 - перейти к сообщению
Но так как класс может рассматриваться как объект, то следует ввести понятие уровень абстракции.
Если мы абстрагировались от конкретного экземпляра, пришли к классу и рассматриваем его как объект, то можно абстрагироваться еще раз - рассматривать класс уровнем выше.

Вдобавок, получается, есть глобальные методы, есть локальные.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Класс Транспортные средства  > метод - перемещение в пространстве:
  3.  
  4. "подкласс" автомобиль > метод - езда по дорогам    | "подкласс" самолет > метод - летание по воздуху
  5.  

Получается задача: описать классы, отношения классов, "локальные и глобальные методы".
Конкретный автомобиль с номером АА777Rus, на котором ты ездишь на дачу, будет экземпляром класса.
При этом класс может включать набор методов, которые вызываются по отношению к объекту =)
7. Sail - 02 Октября, 2014 - 11:26:52 - перейти к сообщению
dcc0 пишет:
Но так как класс может рассматриваться как объект

Если только в таком (или подобном) контексте: Рабочий класс как объект социологического анализа Хорошо
8. dcc0 - 02 Октября, 2014 - 12:04:03 - перейти к сообщению
Можно и так рассматривать:
Класс >Пролетариат.
Метод > классовая борьба рабочих и крестьян.
Моторист Петр > экземпляр рабочих.
Крестьянин Иннокентий > экземпляр крестьян.
Владимир Ильич Ленин - > просто экземпляр со своими методами.

Можно попробовать на примере устройства и работы пакетного менеджера Linux рассмотреть классы, методы и объекты. Например, система Portage - класс пакетные менеджеры.
В ней есть объекты - ебилды, разделенные на подклассы.
Есть метод emerge, его можно рассматривать "как класс методов" применяемых к объекту ебилд.

P.S. Фактически это все та же вложенность, модульность, вызов метода к объекту можно рассматривать как применение функции к аргументу.
9. esterio - 02 Октября, 2014 - 12:05:29 - перейти к сообщению
обьект == екземпляр класса
тоесть класс это описание обьекта
обьект уже можно использовать (вызов методов, установка свойств и т.д.)
но клас без создания обьекта использовать нельзя (кроме статических)
10. Alex_dark74 - 02 Октября, 2014 - 12:11:51 - перейти к сообщению
Ну блин! Я думал, что все понял!!!
Оказывается ничего не понял. Опять запутался!
11. dcc0 - 02 Октября, 2014 - 12:18:04 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. Ну блин! Я думал, что все понял!!!
  2.  Оказывается ничего не понял. Опять запутался!


Применительно к реальному программированию смотри последнее сообщение от Esterio.

P.S. Я несколько отвлеченно написал.
12. DelphinPRO - 02 Октября, 2014 - 12:30:49 - перейти к сообщению
ну что здесь непонятного.

Класс - это описание. Объект - это сущность, созданная по описанию.
Описать можно свойства (какой?) и действия (как?)

Описываем свойство $color = red;
и действие (метод) function paint($newColor) { $this->color = $newColor; }
изначально красный объект перекрашиваем в другой цвет. Т.е. имеем описание некоего объекта красного цвета, который умеет перекрашиваться. Используем это

$object = new MyClass(); // красный объект
$object->paint(blue); // синий объект

вот и весь базовый ООП. Улыбка
(о полиморфизме и наследовании мы поговорим на следующем занятии Улыбка )
(Добавление)
Скачайте на торрентах курсы Специалиста по php (Уровень третий - как раз про ООП)
Очень хорошо все объясняет.
13. dcc0 - 02 Октября, 2014 - 13:21:20 - перейти к сообщению
Т.е. класс - инструкция по сборке стола.
Метод, расположение в нужном порядке и завинчивание саморезов.
Свойства - из одного набора по инструкции можно собрать компьютерный стол,
а можно стол для черчения.
Набор для сборки из Икеи - экземпляр класса.
Прочитали инструкцию, собрали - применили методы и свойства.

P.S. Если снова отвлечься от конкретики и поговорить о классификации,
то можно даже в рамках одной модели (по крайней мере языковой) представить и такую штуку.
CODE (htmlphp):
скопировать код в буфер обмена
  1. Общий класс:
  2. Класс > транспортное средство >
  3.      объект > лошадь
  4.    Класс машина >
  5.      объект  ВАЗ212
  6. Класс машина >
  7.  объект > cтиральная
  8. транспортное средство >
  9.    объект > самолет
14. MiksIr - 02 Октября, 2014 - 14:00:06 - перейти к сообщению
Слишком углубляться в аналогии вредно для понимания.
Пробежался по статье в вики - вполне доходчиво про класс и объекты, советую прочитать
[url]https://ru.wikipedia.org/wiki/Класс_(программирование)[/url]

 

Powered by ExBB FM 1.0 RC1