Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Наследование 
:(
    Опции темы
Tirael
Дата 15.5.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 31.1.2006
Где: Москва

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




Цитата(w1nd @  14.5.2006,  21:43 Найти цитируемый пост)
Опять пример кода  Тело метода плоскости:
    square.resize(this.width / 2, this.height / 2);    

Уважаемый....данный квадрат будет занимать четверть плоскости. Или мне кажется ?


 
--------------------
 
PM MAIL   Вверх
w1nd
Дата 15.5.2006, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

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



Цитата(Domestic Cat @  14.5.2006, 22:04)
Может у вас логика какая другая... Но вот мне кажется что это чепуха... Приведите ссылку или согласитесь.

Согласиться с чем? Что чепуха? smile Еще раз, на пальцах: есть некий объект, есть его проекция на плоскость, которая полностью умещается в одну ячейку координатной сетки плоскости (объект находится очень далеко от плоскости), т. е. проекция данного объекта вырождена в точку.

Цитата(LSD @  14.5.2006, 22:36)
Если я буду разрабатывать класс квадрат, то я реализую базовый функционал для квадрата в декартовой системе: координаты, размер и т.п., плюс обеспечение корректности внутреннего состояния объекта (чтоб размеры сторон нельзя было сделать отрицательными и т.п.). Если кому-то понадобится квадрат в косоугольной системе координат, или с размером в попугаях, или еще какая экзотика, пусть сам и реализует. Возможности я для этого предоставил, все необходимые данные доступны.

Т. е. вы реализуете структуру с контролем целостности полей и некоторыми общеупотребительными сервисными методами для преобразования данных, хранящихся в этой структуре. Очень хорошо, что из этого следует?

Цитата(LSD @  14.5.2006, 22:36)
Это я к тому, что очень хочется посмотреть как ты напишешь сколько нибудь серьезную программу с GUI, без того чтобы получать размеры компонентов (раз уж ты заявляешь, что компоненты не должны разглашать подобные сведения).

Как я уже дважды (если не больше) писал в этой теме, GUI делать я в ООП не буду даже и пытаться. Когда я делаю гуевые компоненты в Java, я не отступаю от принятого авторами стандарта. Переписывать существующие не-ООП фреймворки с нуля невыгодно, а гибрид делать невыгодно тем более - всё равно ничего хорошего не получится. 

Цитата(cromm3 @  14.5.2006, 21:55)
А как, программно, узнать, какую часть площади плоскости занимает квадрат? Я извиняюсь, но просто хочется понять…

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

Цитата(Tirael @  15.5.2006, 00:13)
Уважаемый....данный квадрат будет занимать четверть плоскости. Или мне кажется?

Вам шашечки или ехать?   

Это сообщение отредактировал(а) w1nd - 15.5.2006, 04:19


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Void
Дата 15.5.2006, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Цитата(w1nd @  15.5.2006,  02:53 Найти цитируемый пост)
Если некоему объекту X требуются данные квадрата, единственный путь - реализовать в квадрате обработчик сообщения (метод), который передаст эти данные объекту X.

Пардон, не улавливаю отличий от банального getter'а. 


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Tirael
Дата 15.5.2006, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 31.1.2006
Где: Москва

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



Я понял...

Это все провакация. Задуманная, чтоб просто  поговорить на умную тему, и поспорить ниачом.

Вначале было интересно.
Затем было смешно.
Сейчас уже не смешно....    

Это сообщение отредактировал(а) Tirael - 15.5.2006, 01:34
--------------------
 
PM MAIL   Вверх
w1nd
Дата 15.5.2006, 04:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

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



Цитата(Void @  15.5.2006, 01:06)
Пардон, не улавливаю отличий от банального getter'а.

Чем ловите?

Разница в том, что вы не можете получить данные квадрата, в отличие от ситуации с getter'ом.  
 

Это сообщение отредактировал(а) w1nd - 15.5.2006, 04:25


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Ivan Kolesnikov
Дата 15.5.2006, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 9.3.2005
Где: г. Новокузнецк

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



Цитата(w1nd @ 15.5.2006,  01:43)
Цитата(cromm3 @ 14.5.2006,  21:33)
Господа-Товарищи, а можете привести реальный пример кода идеальной ОО программки(не большой)? Так будет интереснейsmile ну чтоб, к примеру, квадрат себя увеличивал до размеров половины площади плоскости, в которой он лежит…smile

Опять пример кода smile Тело метода плоскости:
Код
    square.resize(this.width / 2, this.height / 2);

Привет! w1nd, ты считаешь не верным, чтобы у объекта можно было получить информации о его размере, так как тогда будет привязка к типу данных. Но при изменении типа например с числа пикселей в число попугаев smile (которое может быть вещественным), все равно придется переписать метод resize и добавление методов getSizeX и getSizeY не изменит существенно ситуацию.

Почему тогда объект не может сообщить свой размер? Я не понимаю! smile.  

Это сообщение отредактировал(а) Ivan Kolesnikov - 15.5.2006, 04:45
--------------------
PM MAIL ICQ   Вверх
w1nd
Дата 15.5.2006, 05:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

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



Цитата(Ivan Kolesnikov @ 15.5.2006,  04:40)
Привет! w1nd, ты считаешь не верным, чтобы у объекта можно было получить информации о его размере, так как тогда будет привязка к типу данных. Но при изменении типа например с числа пикселей в число попугаев smile (которое может быть вещественным), все равно придется переписать метод resize и добавление методов getSizeX и getSizeY не изменит существенно ситуацию.

Почему тогда объект не может сообщить свой размер? Я не понимаю! smile.

Я не считаю это верным или неверным. Просто это будет нарушением принципов ООП.  

Это сообщение отредактировал(а) w1nd - 15.5.2006, 05:15


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Ivan Kolesnikov
Дата 15.5.2006, 05:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 9.3.2005
Где: г. Новокузнецк

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



Цитата

Мы можем послать объекту сообщение (вызвать метод): "сделай что-то", но никогда не можем запросить у объекта данные.

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

Это сообщение отредактировал(а) Ivan Kolesnikov - 15.5.2006, 05:26
--------------------
PM MAIL ICQ   Вверх
powerOn
Дата 15.5.2006, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(w1nd @  15.5.2006,  06:09 Найти цитируемый пост)
Просто это будет нарушением принципов ООП.  


Мы все учимся (или учились) по каким-то материалам, книгам, мануалам. Так вот, уважаемый w1nd, не подскажите ли Вы, каков источник ваших знаний о принципах ООП? Хочу почитать. Спасибо.   


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Domestic Cat
Дата 15.5.2006, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Цитата(w1nd @  14.5.2006,  15:53 Найти цитируемый пост)
Еще раз, на пальцах: есть некий объект, есть его проекция на плоскость, которая полностью умещается в одну ячейку координатной сетки плоскости (объект находится очень далеко от плоскости), т. е. проекция данного объекта вырождена в точку.

Ну конечно, а если нарисовать квадрат на листке бумаги, скомкать и выбросить - он выродится в мусорную корзину. 
Блин, какая "ячейка координатной сетки плоскости" в геометрии? Вы вообще проходили стандартный курс аналитической геометрии или нет?

Цитата(w1nd @  14.5.2006,  15:53 Найти цитируемый пост)
Если некоему объекту X требуются данные квадрата, единственный путь - реализовать в квадрате обработчик сообщения (метод), который передаст эти данные объекту X.


Цитата(w1nd @  14.5.2006,  19:22 Найти цитируемый пост)
Чем ловите?
Разница в том, что вы не можете получить данные квадрата, в отличие от ситуации с getter'ом.  


Может объясните разницу - на примере?


Цитата(Tirael @  14.5.2006,  16:29 Найти цитируемый пост)
Это все провакация. Задуманная, чтоб просто  поговорить на умную тему, и поспорить ниачом.

ППКС 


--------------------

PM   Вверх
onsh76
Дата 15.5.2006, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 20.11.2005
Где: Beautiful BC

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



Domestic Cat, да нет наверное смысла  сказки глухому рассказывать ...
Винград форум силен тех.специалистами -  за это Вам большой респект... 
Нафига давать простор дилетантам и демагогам?
Закрывайте тему, господа модераторы, либо перемещайте ее в "Оффтоп"... 
PM MAIL   Вверх
UnicornMirage
Дата 15.5.2006, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



не нашел здесь ничего интересного для себя. некрасивый спор. пустая трата времени. 
PM MAIL   Вверх
ALKS
Дата 15.5.2006, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(MoonCat @ 15.5.2006,  07:59)
Цитата(w1nd @  15.5.2006,  06:09 Найти цитируемый пост)
Просто это будет нарушением принципов ООП.  


Мы все учимся (или учились) по каким-то материалам, книгам, мануалам. Так вот, уважаемый w1nd, не подскажите ли Вы, каков источник ваших знаний о принципах ООП? Хочу почитать. Спасибо.

присоеденияюсь к просьбе. 
PM   Вверх
vinegr
Дата 15.5.2006, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(w1nd @  15.5.2006,  00:53 Найти цитируемый пост)
Т. е. вы реализуете структуру с контролем целостности полей и некоторыми общеупотребительными сервисными методами для преобразования данных, хранящихся в этой структуре. Очень хорошо, что из этого следует?

IMHO, следует исчерпывающий ответ на ваше заявление "это не является ООП!" - если определить объект-структуру, структурные методики формально включаются в ООП.

На мой взгляд, w1nd прав, но схоластика, в которую он ушел - тривиальна.
Любая практическая реализация ООП кроме объектов предусматривает "среду", в которой эти объекты "плавают". Да, w1nd прав, что существующие технологии не ограничивают программиста только "конструированием объектов", а допускают "подрихтовать среду исполнения" - и в этом смысле не являются "pure-ООП". 
Я бы также заметил, что базовые свойства сред исполнения ООП-программ (наследование, например) - не сводится к обмену сообщениями между строго изолированными объектами. Т.е. среда, в которой функционируют объекты - необъектна.

Ну да, "pure-ООП" средств сейчас нет - потому что нет ни способа практической реализации, ни нужды в таких средствах. 
PM MAIL   Вверх
w1nd
Дата 15.5.2006, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

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



Подведём итог. Изначальный вопрос - что может быть странного (или непонятного) в примере наследования квадрата от точки - так и остался без ответа smile Разумеется, это была чистой воды провокация; мне самому чье-либо мнение по затронутым в теме вопросам... как бы это сказать... не очень интересно. Что ж, некоторые собеседники (не буду указывать пальцем) выявили непонимание идеологии ООП (точнее выражаться не буду).

Цитата(MoonCat @  15.5.2006, 07:59)
Мы все учимся (или учились) по каким-то материалам, книгам, мануалам. Так вот, уважаемый w1nd, не подскажите ли Вы, каков источник ваших знаний о принципах ООП? Хочу почитать. Спасибо.

Я не могу сказать, что учился у каких-то определенных авторов. Также, к сожалению, не смогу назвать точно назвать книжки, которые читал, так как они были бумажными и давно перекочевали в помойку; сейчас я подобных книжек не читаю. Но труды Буча, я думаю, читали (читают) все. Текущая тема содержит много цитат из книжки Алена Голуба (Allen I. Holub, "Enough rope to shoot yourself in the foot: Rules for C and C++ programming"). Еще могу вспомнить Пола Лукаса, Стефана Дьюхарста, Кэти Старк. У некоторых книжек вообще автора не было (одно время издательства позволяли себе такие безымянные переводы). 

Но главное - я никогда не считаю мнение того или иного автора истиной в последней инстанции. Эти самые авторы ничем не отличаются от нас - ушли из программирования благодаря продвижению по карьерной лестнице и теперь обладают временем для писательства.

Цитата(onsh76 @  15.5.2006, 09:48)
нет наверное смысла  сказки глухому рассказывать <...> нафига давать простор дилетантам и демагогам

Осторожнее с высказываниями, дружище. Судя по вашей решимости в определениях, вы говорите о себе. 


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

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


 




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


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

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