![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| supervladislav |
|
||||||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
существует код
подскажите ,если к свойству используется метод инкапсуляции private то мне непонятно где нельзя его использовать ,ну по отноршению к чему, К текущим функциям??? Почему надо писать и в каких методах
зачем это писать ,в каких методах? что значит
Это сообщение отредактировал(а) supervladislav - 18.4.2009, 23:22 |
||||||
|
|||||||
| bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
по той же причине, по какой надо писать любую переменную. т.е. когда угодно
это значит, что для:
т.к. свойство видно только изнутри класса т.е. если внутри свойства написано $this->_name то проблем не будет |
||||
|
|||||
| supervladislav |
|
||||||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
я имел ввиду ,я несовсем понимаю )))как правильно использовать свойства почему
зачем нужно
а можно сразу определить переменную $name ,тоесть задать ей значение??? А если методов и свойств много ??? почему для вызова методов и свойств используется один и тотже лексикон
непонимаю в чём раздница в выше приведённом коде |
||||||
|
|||||||
| bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
дык, а какая у тебя задача? почему ты не задаёшь ей значение сразу?
во-первых, надобно бы пользовать тот код который пишешь, а не переспрашивать на форуме. неужели наблюдая за разным поведением не сможешь сделать выводов? для приведённого класса понятное дело они одинаковы, коль поставил public для свойства. но спрашивал изначально про private. зачем за нос водишь? |
||||
|
|||||
| pizzz |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 14.12.2008 Где: Омск Репутация: 6 Всего: 8 |
Зачем нужно $this-> ?
Ну вот представьте у Вас 1 класс, и 3 обьекта этого класса. И у каждого обьекта определано свое свойство name. Подумайте, почему названно ОБЕКТНО-ОРЕНТИРОВАННОЕ-ПРОГРАММИРОВАНИЕ а не КЛАССО-ОРЕНТИРОВАННОЕ-ПРОГРАММИРОВАНИЕ Добавлено через 5 минут и 15 секунд class Demo { public name; __construct ($a) { $this->name=$a; } } Создавая обьект в классе можно указать код, который будет выполнен при создание обьекта. То есть $a = new Demo("ПРивет мир!!!"); $b = new Demo("Пока мир!!!"); echo $a->name; echo $b->name; Выведет: ПРивет мир!!! Пока мир!!! Добавлено через 7 минут и 51 секунду P.s. Задавайте вопросы четче. Будете получать ответы получше --------------------
Спасибо много, жмем кнопку репутация. Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады. |
|||
|
||||
| supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
зачем обязательно возвращать значение свойств в метод ,у меня во всех примерах так ))))
можно значения свойств вызвать без возврата в метод ,и можно ли определить сразу в классе значения свойств |
|||
|
||||
| pizzz |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 14.12.2008 Где: Омск Репутация: 6 Всего: 8 |
Если честно нифига не понятно. Хотите чтобы Вам помогли? Задавайте вопросы правильно.
Да в классе можно определить значения --------------------
Спасибо много, жмем кнопку репутация. Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады. |
|||
|
||||
| supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
Сейчас попробую.Скажите можно свойство вызвать без вот этого
обязательно значения свойств возвращать в метод ,можно свойство вызвать без этого |
|||
|
||||
| bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
что это за хрень? и почему у вас не пишется ошибка в этом коде?
да не нужно ничего делать. делайте что хотите. хотите чтобы свойство было доступно вне класса, делайте его public, не хотите - делайте private. если оно public, то значение свойства вы можете установить без всяких методов, просто присвоив ему значение:
всё. какие тут непонятки? Это сообщение отредактировал(а) bars80080 - 19.4.2009, 21:19 |
||||
|
|||||
| supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
ясно )))А ещё обязательно задавать методы инкапсуляции для методов ,в каком случае это нужно )))
если класс будет public То и всё внутри него тоже будет public или нет? Добавлено через 36 секунд у меня так напсиано в книге |
|||
|
||||
| Kirsan |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 4.11.2008 Где: г.Волжский, Волго градская обл. Репутация: 1 Всего: 1 |
Класс есть класс, он не Private и не Public.
Инкапсуляция нужна для того, чтобы максимально абстрагировать класс, оставляя доступным только интерфейс и пряча внутрь все вспомогательные методы и свойства. Почитайте литературу по ООП. Там это всё объясняется. Начиная с того, что ООП - это не какая-то непонятная фича PHP, а парадигма программирования. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
ничего не понял.... методы для методов? а где это вы видели, чтобы целому классу назначалось private или public? только методам и свойствам внутри класса |
|||
|
||||
| supervladislav |
|
|||
![]() ///\\\///\\\///\\\ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 18.5.2006 Репутация: -8 Всего: -9 |
Я читал ,что такое ооп))))я не очень понимаю как работают методы инкапсуляции)))
если функция имеет метод public к нему можно будет обратиться из любой части кода так ,а если он будет он private то только в пределах этого класса тоесть это как вы могли бы дать пример пожалуйста. |
|||
|
||||
| pizzz |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 14.12.2008 Где: Омск Репутация: 6 Всего: 8 |
class Demo () {
private $pr; public $pu; } $obj = new Demo (); echo $obj->pr; // Вернет ошибку. echo $obj->pu; // выведеться нормально --------------------
Спасибо много, жмем кнопку репутация. Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады. |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Почему-то, у меня стойкое ощущение, что данный топик скорее относится к фундаментальным основам ООП, а не профессиональной разработке на PHP.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |