За последние 24 часа нас посетили 59838 программистов и 1769 роботов. Сейчас ищут 804 программиста ...

Пару вопросов по ООП

Тема в разделе "PHP для новичков", создана пользователем Invision, 10 апр 2011.

  1. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Начал потихоньку погружаться в ООП, конечно это полная жопа, но со временем освоиться можно =)

    Вопрос касается наследования и private ) К примеру при расширении функционала какого-то класса, в нем стоит
    private $login;
    private $pass;
    private $email;
    т.е доступно только для этой функции. Когда расширяется через extends также в приват добавляются дополнительные значения и в функцию что то типо:

    parent :: __construct($login, $pass, $email);
    $this->url = $url;
    $this->icq = $icq;

    т.е из родительского конструкта берутся значения, а ниже добавляются новые.

    Что если вместо private поставить Public, то можно спокойно убрать parent :: __construct($login, $pass, $email); и тупо добавить новые значения? Ведь они будут вне класса уже доступны?) Еще не практиковал, но думаю лучше подстраховаться и спросить) спасиб.
     
  2. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    см. модификатор доступа protected
     
  3. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    точно)) спс. это наверное зависит еще от того или инного случая юзать protected или родительские данные добавлять parent. ?)
     
  4. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    И еще) Как так в классе -- функция { присваиваются переменным значения

    ведь $obj будет вне класса типо

    $obj = new classname();
    $obj->getName();
    итд

    или я еще чего то не знаю?(
     
  5. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    если ты используешь внешний объект, то его в метод нужно передать или объявить глобальным. иначе ты до него не достучишься. если ты сам себя меняешь из метода, то пишешь $this->param = $new_value; если этот параметр статический, то будет self::$param = $new_value;
     
  6. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    блин ну почему так все сложно :( или это только на первый взгляд так ((
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Invision
    потому что ты никогда ничего не делаешь сам. ждешь когда тебе разжуют.
    если бы ты начал читать про ооп сам, с начала, а не слушал дядей которые начинают рассказ с конца, то мозги бы не задымились.

    итак:
    ооп придумано чтобы не ебать моск тем, кто не знает ничерта о том, с чем работает. =) Проще говоря, вася кодит класс, петя кодит все что вокруг класса. и круто. деревня счастлива!

    это так всем понравилось, потому что прогеры и трактористы любят ничего не выбрасывать и использовать по десять раз. ООП под это дело очень подошло, поэтому получило такое распространение=) Все были очень довольны, пока процессоры не стали такие шустрые, что их стало можно заваливать тоннами говнокода и все все работает быстро.

    Тогда говнокод разросся, и ООП стало разрастаться неуемно - ибо кучищи всяких классов передавались в классы, наследовались, изменялись, и т.п. и уже стадо недостаточно видеть что у класса есть два метода и вызывать подходящий. У классов стало у каждого по сотне-другой говнометодов, и разобраться в них стало невозможно. Тогда собрались самые сильные программисты и решили выбросить ООП в огненную бездну Мордора. Но ООП изменило их пока они пили пиво, и обмануло их уверив, что дополнительные хрени помогут заменить написание четкой документации. А дополнительные хрени это всякие приваты и протектеды, статики и синглтоны. Так ООП прячет методы, о которых ты даже ничего не знаешь! Тысячи их!

    а потом появились конструкторы... деструкторы... удобные... клевые... и блистят... наша прелесть...
     
  8. NR55RU

    NR55RU Активный пользователь

    С нами с:
    16 фев 2011
    Сообщения:
    88
    Симпатии:
    0
    Invision почитай:

    Мэтт Зандстра
    PHP: объекты, шаблоны и методики программирования

    у меня второе издание но уже видел и 3-е. что в нем не смотрел.
     
  9. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Спасибо :)
     
  10. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Invision

    Хорошая книга http://www.ozon.ru/context/detail/id/2847621/ жаль только перевод хуевый...((( По ходу его писали те, кто от php и вообще от программирования далековат.
    И опечаток хватает, надо внимательным быть)

    Уже год по кругу читаю(помимо другой литературы конечно), и каждый раз открываю что-то новое, что в прошлый раз не смог понять из-за недостатка знаний и навыков.

    Зандстру тоже рекомендую.
     
  11. Benjamin

    Benjamin Активный пользователь

    С нами с:
    23 янв 2009
    Сообщения:
    154
    Симпатии:
    0
    Адрес:
    Тула
  12. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Тебе даже ссылку дали, где её можно найти - http://www.ozon.ru/context/detail/id/2847621/
     
  13. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    Apple, её никогда нет в наличии. что толку от ссылки, если книгу нельзя купить?
     
  14. Benjamin

    Benjamin Активный пользователь

    С нами с:
    23 янв 2009
    Сообщения:
    154
    Симпатии:
    0
    Адрес:
    Тула
    Ладно. А где все-таки её можно купить?
     
  15. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
  16. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    если из минска заказывать на русском, то она стоит 50 тысяч бел. руб. это где-то 16$. за доставку не жалко отдать баксов пять даже. где-то 20$ на родном против 25$+доставка на языке оригинала. меня бы заломало платить за оригинал в 2 раза больше
     
  17. Benjamin

    Benjamin Активный пользователь

    С нами с:
    23 янв 2009
    Сообщения:
    154
    Симпатии:
    0
    Адрес:
    Тула
    titch
    Магазинчик не подскажете?
     
  18. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    видел на lit.by пару дней назад. если нету, можно оставить заказ, они со складов туда-сюда таскают