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 :: ООП с самого начала [2]
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
Просто это бы было очень наглядно и понятно (по крайней мере для меня )
И еще такой вопросик. А с точки зрения оптимизации. Как это все работает? Если я правильно понимаю ООП не может быть быстрее функций по определению. Или используется какой-то другой алгоритм?
Т.е время на инициализацию класса всегда больше, чем выполнение ф-й.
P.S. Простите если я задаю глупые вопросы. Просто сколько я не читал в инете, все пишут по-разному.
DeepVarvar
Отправлено: 12 Ноября, 2011 - 22:11:31
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Классы действительно медленне ф-ций, но те возможности, которые они дают для реализации приложений покрывают все расходы по времени с лихвой.
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
Спасибо за ссылку, добавил в избранное. Вы пишите если есть желание, правда все это очень интересно и пишите Вы достаточно доступно.(по крайней мере у Вас есть один благодарный читатель)
DeepVarvar
Отправлено: 12 Ноября, 2011 - 22:20:16
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
А можете ответить на несколько вопросов касаемо класса $car?
$car = new car; //Это я понял, создали класс
$car->beep(); // С этим тоже понятно
$car->gaz(30); // А вот тут когда сработал __construct() строка 34
Как бы дальше тоже понятно.
И еще а как сделать 2 машину?(создать второй класс)
DeepVarvar
Отправлено: 12 Ноября, 2011 - 22:28:16
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Конструктор сработал во время создания объекта.
Создать вторую машину легко:
(Добавление)
так же в тот момент когда сработал конструктор мы установили св-во $engine в положение on и израсходовали немного топлива - это ведь естественно, перед тем как повернуть ключ зажигания мы придавливаем педаль чтобы подать чуток смеси в карбюратор.
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
Если я правильно понимаю. То __construct() вызывается всегда при инициализации класса
(т.е фактически что-то типа options(базовые настройки) класса). Правильно?
И еще Вы указываете переменные var $переменная-это обязательно?
DeepVarvar
Отправлено: 12 Ноября, 2011 - 22:38:15
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
tuareg пишет:
Правильно?
Правильно.
tuareg пишет:
var
Кроме оных существуют еще и многие другие "типы" свойств классов, например: static, private, public, protected... А var, это как бы дефолтное объявление паблик-свойства. Т.е. оно будет доступно извне: $car->engine = "off";
Чтобы такого не происходило, если это нужно по логике приложения, можно вместо var написать private.
Тогда прочитать или изменить приватное св-во извне будет нельзя - это вызовет ошибку.
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
Уже что-то отложилось в голове Понимание приходит. Еще не совсем, но думаю что при наличии новых постов будет лучше. Правда Великое дело делаете
DeepVarvar
Отправлено: 12 Ноября, 2011 - 22:45:15
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Так же в будущем, я слышал, говорят, уберут определение var, поэтому уже сейчас стоит явно указывать public или private (Добавление)
Я еще раз подведу итог того что было описано в статье.
Комментарии немного не в счет, эти вещи нужно описывать в следующих "перлах".
Вобщем в статье мы разобрали следующие вопросы:
1) функции
2) "сообщество" функций
3) сначала логика, затем вывод
4) классы и методы
5) немного информации о возможностях
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
caballero пишет:
До первого самостоятельного РЕАЛЬНОГО куска проекта
Это точно. Я когда устроился на работу прогером и дали мне корпоративную ЦМС разбирать, я потерялся напрочь..
Но это только самый первый опыт, дальше уже не страшно и все гораздо быстрее.
Сейчас уже всеравно во что вкуривать. Нет растерянности. Это сравнимо с опытом выхода на сцену к зрителям
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
Я не буду спорить, смысл не в этом. Для меня было бы наглядней, понятней и т.д
есть задача что-то сделать и предлагается 2 варианта решения один ООП, другой ф-ии.
Я смотрю и вижу, ага здесь да лучше ООП, а здесь ф-ии. Я еще раз уточняю мне это очень интересно, поэтому как бы не думайте про меня всякое .
caballero
Отправлено: 12 Ноября, 2011 - 23:09:53
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Я смотрю и вижу, ага здесь да лучше ООП, а здесь ф-ии
Если бы ты мог это видеть - у тебя бы не было вопросов по ООП.
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
caballero пишет:
Если бы ты мог это видеть
он сможет это видеть тогда и только тогда когда будет знать ООП.
Все очень просто, зачем расписывать преимущества и/или недостатки ООП подхода, когда он не знает что в нем сокрыто?
Для того чтобы знать зачем оно надо, сперва нужно это знать.
Я не призываю брать и юзать немедленно, наоборот, все полученные недознания применяться могут только на свой страх и риск, и никак иначе. Так лучше их пока не применять и впитывать, впитывать, впитывать...
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.