Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Метод одного класса требуется в другом классе
 
 автор: Lelik   (05.03.2008 в 21:45)   письмо автору
 
 

Допустим у меня написано 2 класса (условно назовем их class1 и class2), написаны они в разных файлах, оба инклудятся в один файл, который в свою очередь инклудится в исполняемые файлы. В классе class2 у меня есть метод method(), в котором необходимо применить метод globalMethod() из класса class1. Возможно ли это сделать, не описывая метод globalMethod() в классе class2?

   
 
 автор: DEM   (05.03.2008 в 23:08)   письмо автору
 
   для: Lelik   (05.03.2008 в 21:45)
 

Если ничего не путаю, то надо сделать globalMethod() публичным, а class2 "природнить" что ли к class1 (забыл как это называется :) )

   
 
 автор: Agronom   (05.03.2008 в 23:18)   письмо автору
 
   для: DEM   (05.03.2008 в 23:08)
 

надо унаследовать класс 2 от класса 1, а метод делать не публичным а protecting, вроде так это называется... т.е. обратиться к нему из внешней программе нельзя, а из классов, которые наследуют этот клас - можно.

   
 
 автор: Lelik   (06.03.2008 в 00:50)   письмо автору
 
   для: Agronom   (05.03.2008 в 23:18)
 

другими словами от наследования не уйти... спасибо :)

   
 
 автор: Agronom   (06.03.2008 в 01:05)   письмо автору
 
   для: Lelik   (06.03.2008 в 00:50)
 

можно сделать ваш метод статическим и вызывать class1::globalMethod() , тогда в самом методе globalMethod() все члены и методы должны быть статическими, что не очень удомно...

Поэтому лучше наследование!

   
 
 автор: Lelik   (06.03.2008 в 01:40)   письмо автору
 
   для: Agronom   (06.03.2008 в 01:05)
 

да, так и буду делать. спасибо еще раз :)

   
 
 автор: cheops   (07.03.2008 в 13:49)   письмо автору
 
   для: Agronom   (06.03.2008 в 01:05)
 

>Поэтому лучше наследование!
От задачи ещё зависит, яблоки от лошадей лучше не наследовать :)
В общем случае требуемый метод лучше выделить в третий класс от которого и наследовать эти два. От наследования одного класса другим лучше воздержаться.

   
 
 автор: Lelik   (07.03.2008 в 19:21)   письмо автору
 
   для: cheops   (07.03.2008 в 13:49)
 

От задачи ещё зависит, яблоки от лошадей лучше не наследовать :)
да, такое наследование немного смущало :)

В общем случае требуемый метод лучше выделить в третий класс от которого и наследовать эти два. От наследования одного класса другим лучше воздержаться.
спасибо всем. теперь получил полный развернутый ответ на свой вопрос :)

   
 
 автор: vitroot   (06.03.2008 в 10:46)   письмо автору
 
   для: Agronom   (05.03.2008 в 23:18)
 

>етод делать не публичным а protecting
protected

   
 
 автор: Lelik   (06.03.2008 в 17:27)   письмо автору
 
   для: vitroot   (06.03.2008 в 10:46)
 

ну это уже ни суть важно, тем более доки всегда под рукой, да и меня интересовал общий подход к вопросу, так сказать :)

   
 
 автор: Петр   (07.03.2008 в 07:38)   письмо автору
 
   для: Lelik   (06.03.2008 в 17:27)
 

мне понравилось слово "природить"

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования