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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Понятие ооп

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Alex_dark74
Отправлено: 02 Октября, 2014 - 08:16:16
Post Id


Частый гость


Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




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

Как представить в ооп калькулятор?
Кнопка - это объект? Операция умножения - это свойство?
 
 Top
dcc0
Отправлено: 02 Октября, 2014 - 09:49:32
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Автомобиль тоже класс, принадлежит к классу транспортные средства,
двигатель тоже класс, принадлежит к классу двигателей внутреннего сгорания.
При этом объект автомобиль имеет метод - "ездить по дорогам общего пользования".
Самолет тоже принадлежит к классу транспортных средств, но при вызове для него метода "ездить по дорогам общего пользования" есть вероятность получения ошибки, если такая ситуация была смоделирована и описана в классе, методе или же самом объекте.

В общем теория множеств.

(Отредактировано автором: 02 Октября, 2014 - 09:51:42)



-----
Март 2021. Бросил программирование
 
 Top
Alex_dark74
Отправлено: 02 Октября, 2014 - 09:59:16
Post Id


Частый гость


Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Класс == объект?
 
 Top
dcc0
Отправлено: 02 Октября, 2014 - 10:16:13
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




В теории, я думаю, все можно рассматривать как класс, и как объект одновременно.
При этом один объект может принадлежать множеству классов, а все классы входить в один большой - "макрокласс", который в свою очередь является еще и объектом.

Более конкретно, важным вопросом оказывается вызов метода для того или иного объекта, скажем так, адекватность метода.


-----
Март 2021. Бросил программирование
 
 Top
Sail
Отправлено: 02 Октября, 2014 - 10:26:20
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Alex_dark74 пишет:
Класс == объект?

Класс, однако - понятие абстрактное. Объект - вполне конкретный экземпляр...
 
 Top
dcc0
Отправлено: 02 Октября, 2014 - 10:39:19
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Но так как класс может рассматриваться как объект, то следует ввести понятие уровень абстракции.
Если мы абстрагировались от конкретного экземпляра, пришли к классу и рассматриваем его как объект, то можно абстрагироваться еще раз - рассматривать класс уровнем выше.

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

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

Получается задача: описать классы, отношения классов, "локальные и глобальные методы".
Конкретный автомобиль с номером АА777Rus, на котором ты ездишь на дачу, будет экземпляром класса.
При этом класс может включать набор методов, которые вызываются по отношению к объекту =)

(Отредактировано автором: 02 Октября, 2014 - 10:49:22)



-----
Март 2021. Бросил программирование
 
 Top
Sail
Отправлено: 02 Октября, 2014 - 11:26:52
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




dcc0 пишет:
Но так как класс может рассматриваться как объект

Если только в таком (или подобном) контексте: Рабочий класс как объект социологического анализа Хорошо
 
 Top
dcc0
Отправлено: 02 Октября, 2014 - 12:04:03
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Можно и так рассматривать:
Класс >Пролетариат.
Метод > классовая борьба рабочих и крестьян.
Моторист Петр > экземпляр рабочих.
Крестьянин Иннокентий > экземпляр крестьян.
Владимир Ильич Ленин - > просто экземпляр со своими методами.

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

P.S. Фактически это все та же вложенность, модульность, вызов метода к объекту можно рассматривать как применение функции к аргументу.


-----
Март 2021. Бросил программирование
 
 Top
esterio
Отправлено: 02 Октября, 2014 - 12:05:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




обьект == екземпляр класса
тоесть класс это описание обьекта
обьект уже можно использовать (вызов методов, установка свойств и т.д.)
но клас без создания обьекта использовать нельзя (кроме статических)
 
 Top
Alex_dark74
Отправлено: 02 Октября, 2014 - 12:11:51
Post Id


Частый гость


Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Ну блин! Я думал, что все понял!!!
Оказывается ничего не понял. Опять запутался!
 
 Top
dcc0
Отправлено: 02 Октября, 2014 - 12:18:04
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




PHP:
скопировать код в буфер обмена
  1. Ну блин! Я думал, что все понял!!!
  2.  Оказывается ничего не понял. Опять запутался!


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

P.S. Я несколько отвлеченно написал.

(Отредактировано автором: 02 Октября, 2014 - 12:18:38)



-----
Март 2021. Бросил программирование
 
 Top
DelphinPRO
Отправлено: 02 Октября, 2014 - 12:30:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




ну что здесь непонятного.

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

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

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

вот и весь базовый ООП. Улыбка
(о полиморфизме и наследовании мы поговорим на следующем занятии Улыбка )
(Добавление)
Скачайте на торрентах курсы Специалиста по php (Уровень третий - как раз про ООП)
Очень хорошо все объясняет.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
dcc0
Отправлено: 02 Октября, 2014 - 13:21:20
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Т.е. класс - инструкция по сборке стола.
Метод, расположение в нужном порядке и завинчивание саморезов.
Свойства - из одного набора по инструкции можно собрать компьютерный стол,
а можно стол для черчения.
Набор для сборки из Икеи - экземпляр класса.
Прочитали инструкцию, собрали - применили методы и свойства.

P.S. Если снова отвлечься от конкретики и поговорить о классификации,
то можно даже в рамках одной модели (по крайней мере языковой) представить и такую штуку.
CODE (htmlphp):
скопировать код в буфер обмена
  1. Общий класс:
  2. Класс > транспортное средство >
  3.      объект > лошадь
  4.    Класс машина >
  5.      объект  ВАЗ212
  6. Класс машина >
  7.  объект > cтиральная
  8. транспортное средство >
  9.    объект > самолет

(Отредактировано автором: 02 Октября, 2014 - 13:29:27)



-----
Март 2021. Бросил программирование
 
 Top
MiksIr
Отправлено: 02 Октября, 2014 - 14:00:06
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Слишком углубляться в аналогии вредно для понимания.
Пробежался по статье в вики - вполне доходчиво про класс и объекты, советую прочитать
[url]https://ru.wikipedia.org/wiki/Класс_(программирование)[/url]

(Отредактировано автором: 02 Октября, 2014 - 14:01:30)



-----
self-banned
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB