Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Возможно ли описание методов вне опред. класса? Описание методов НЕ В НУТРИ ОПРЕДЕЛЕНИЯ  
:(
    Опции темы
racner
  Дата 30.10.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.10.2009

Репутация: нет
Всего: нет



Помня старые добрые времена программирования на С++ очень удобно было ОПРЕДЕЛЯТЬ классы в одном файле (он имеет расширение *.h ), а описывать в другом ( *.cpp )

Вот примерно имело такой вид


Код

/// один файл:

#include "/CApple.cpp"

class CAplle
{
    char* color;

    char* GetColor();
}

// другой файл:

#include "/CApple.h"

char* GetColor::CAplle()
{
    return color;
}



М... примерно так, возможно я че-та забыл на счет синтаксиса, но согласитесь, это удобно для ООП. 

Подскажите, так можно ли в ПХП описывать метод вне определения класса? =)
PM MAIL   Вверх
youri
Дата 30.10.2009, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



нельзя, в качетсве альтернативы можно использовать панели ide типа outline
PM   Вверх
SoWa
Дата 30.10.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



А инклюдами такое не провернуть?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
nerezus
Дата 30.10.2009, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

но согласитесь, это удобно для ООП. 

В каком месте?

Меня самого нереально бесит идиотская система линковки в C++, из-за которой мне приходится бить файлы на куски.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
youri
Дата 30.10.2009, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Цитата(SoWa @  30.10.2009,  18:37 Найти цитируемый пост)
А инклюдами такое не провернуть?

нет
PM   Вверх
racner
Дата 31.10.2009, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.10.2009

Репутация: нет
Всего: нет



Цитата(nerezus @  30.10.2009,  20:24 Найти цитируемый пост)
В каком месте?

В том, что ОДИН раз написав метод у класса можно "ЗАБЫТЬ" код этого метода и не натыкаться глазами на него больше никогда. Таким образом реализуется один из фундаментальных принципов ООП - ИНКАПСУЛЯЦИЯ, как пафосно это не звучало бы  smile   smile 
Цитата(youri @  30.10.2009,  18:20 Найти цитируемый пост)
нельзя, в качетсве альтернативы можно использовать панели ide типа outline 

Ты имеешь ввиду фичи продвинутых редакторов, типа VS.PHP, всякие схемки в которых расписаны методы и т.п.? =)
PM MAIL   Вверх
nerezus
Дата 31.10.2009, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

В том, что ОДИН раз написав метод у класса можно "ЗАБЫТЬ" код этого метода и не натыкаться глазами на него больше никогда. Таким образом реализуется один из фундаментальных принципов ООП - ИНКАПСУЛЯЦИЯ, как пафосно это не звучало бы
 Пиши, забывай - в чем проблема? PHP не препятствует этому.

Цитата

Ты имеешь ввиду фичи продвинутых редакторов, типа VS.PHP
 Если пишешь в блокноте - то ССЗБ.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
nerezus
Дата 31.10.2009, 08:10 (ссылка)    | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



user posted image


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
racner
Дата 31.10.2009, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.10.2009

Репутация: нет
Всего: нет



nerezus, а это че, за психоделическая картинка? ))) Знамя истых программистов на php? =)

P.S. не... мну блокнот не юзаю - все как надо - локальный сервер + дримвив - но это до недавних пор. А вот теперь установил VS.php на Visual Studio - счастья полные штаны (и блоки кода сворачивать можно) =))))

PM MAIL   Вверх
youri
Дата 1.11.2009, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Цитата(racner @  31.10.2009,  03:01 Найти цитируемый пост)
В том, что ОДИН раз написав метод у класса можно "ЗАБЫТЬ" код этого метода и не натыкаться глазами на него больше никогда. Таким образом реализуется один из фундаментальных принципов ООП - ИНКАПСУЛЯЦИЯ, как пафосно это не звучало бы  

да, тебе действительно folding нужен, только мне он пока как-то не помогал. И это какая-то искаженная интерпретация инкапсуляции
PM   Вверх
Simpliest
Дата 3.11.2009, 07:30 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Цитата(racner @  31.10.2009,  03:01 Найти цитируемый пост)
Таким образом реализуется один из фундаментальных принципов ООП - ИНКАПСУЛЯЦИЯ, как пафосно это не звучало бы      

Как бы пафосно это не звучало.... но ЭТО не инкапсуляция

Цитата(racner @  30.10.2009,  18:10 Найти цитируемый пост)
так можно ли в ПХП описывать метод вне определения класса?

Да возможно.

А если бы вы хорошо изучали бы C/C++, то знали бы, что для этого нужно...

Пишите свой препроцессор. И будет вам счастье.


--------------------
user posted image
PM   Вверх
racner
Дата 4.11.2009, 03:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.10.2009

Репутация: нет
Всего: нет



Simpliest
Цитата(Википедия)

Инкапсуляция - свойство языка программирования, позволяющее объединить данные и код в объект и скрыть реализацию объекта от пользователя. При этом пользователю предоставляется только спецификация (интерфейс) объекта. Пользователь может взаимодействовать с объектом только через этот интерфейс.


Ну да, похоже я поспешил назвать инкапсуляцией возможность сокрытия кода от самого себя. А не  от гипотетического пользователя и не только кода а еще и некоторых свойств, методов, посредством private...

Но само понятие - Инкапсуляция, больше философское понятие, поэтому вокруг него возможны споры =)

youri, кстати Дрим CS 4 и VS.php позволяют сворачивать куски кода. В принципе, можно довольствоваться и этим...

еще раз to Simpliest

мы учимся )
PM MAIL   Вверх
brother79
Дата 6.11.2009, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



Цитата(racner @  31.10.2009,  03:01 Найти цитируемый пост)
В том, что ОДИН раз написав метод у класса можно "ЗАБЫТЬ" код этого метода и не натыкаться глазами на него больше никогда. Таким образом реализуется один из 



Испольщуй редакторы, которые сворачивают реализацию метода в виде дерева. Надо посмотреть, развернул.


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0755 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.