Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.09.2010, 01:10
koIIImarik вне форума Посмотреть профиль Отправить личное сообщение для koIIImarik Посетить домашнюю страницу koIIImarik Найти все сообщения от koIIImarik
  № 1  
Ответить с цитированием
koIIImarik
 
Аватар для koIIImarik

Регистрация: Jul 2007
Адрес: Россия, Москва
Сообщений: 522
2 cleptoman:
Цитата:
в том то и дело, что не совсем вкуса..супер - явный признак вызова родительского метода.
т.е. к примеру если мы разбираем класс, где много много букаф и видим конструкцию super.someMetod() мы не лазием по тыще строк в поисках его (его может и не быть в этом классе), а смотрим экстенд и смотрим метод в родителе. я к чему - проще для восприятия и работы с кодом в целом. это навскидку)
В FlashDevelop всё решается кликом на методе и нажатием F4 =)

2 etc:
Цитата:
1) Вызываем method3 класса Class2, который в свою очередь вызывает method3 у Class3. Всё через super.
Если это шутка, то я её вначале не понял =) Хотел написать, что это бред.

По поводу использования super везде, моё мнение схоже с Котяра. Хотя, опять же, это, наверно, дело вкуса, кому-то, может быть, удобнее писать super везде. Если такие есть, то мне интересно, пишете ли вы super.addChild, или super.graphics, или super.mouseX или super.contains?

Старый 30.09.2010, 11:51
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от koIIImarik Посмотреть сообщение
Если это шутка, то я её вначале не понял =) Хотел написать, что это бред.
Чистейшая правда.

Цитата:
Сообщение от koIIImarik Посмотреть сообщение
Если такие есть, то мне интересно, пишете ли вы super.addChild, или super.graphics, или super.mouseX или super.contains?
Пишу.

Старый 30.09.2010, 01:18
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 3  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Это случай на миллион, когда вдруг внезапно потребовалось что-то изменить, да так, чтобы у всех. Случай на 10 тысяч это когда конкретному блоку кода нужно вдруг другое поведение, а не всем в целом - тут уже переопределяем метод и не парим голову по поводу того, что в 40 местах это поведение вдруг изменилось.
В моей практике как-то так. Миллион бывает реже, поэтому я пишу super. А учитывая что мне с ним когда читать легче - мой выбор очевиден. А начиналось с моды..)

Кошмарик, да. Я даже super.stage пишу ))

Старый 30.09.2010, 13:40
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 4  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Цитата:
Сообщение от etc Посмотреть сообщение
Пишу.
ё мое...сколько лишних букв,
super, this - это же идентификаторы области видимости в классе и только...
Представляю, во что бы превратился код на с++ (там используется конструкция "ИмяКласса::" либо просто "::") если для "понятливости" везде писали эти конструкции...
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
и не парим голову по поводу того, что в 40 местах это поведение вдруг изменилось.
Все равно не понимаю, зачем тогда переопределять данный метод, если поведение его вдруг поменяется в 40 местах, не проще ли написать тогда новый? Ведь переопределять надо так, чтобы логика не менялась...

Старый 02.10.2010, 23:53
easy.proger вне форума Посмотреть профиль Отправить личное сообщение для easy.proger Найти все сообщения от easy.proger
  № 5  
Ответить с цитированием
easy.proger

Регистрация: Jun 2010
Адрес: somewhere in the universe
Сообщений: 195
Цитата:
Сообщение от zuxul Посмотреть сообщение
ё мое...сколько лишних букв,
super, this - это же идентификаторы области видимости в классе и только...
Представляю, во что бы превратился код на с++ (там используется конструкция "ИмяКласса::" либо просто "::") если для "понятливости" везде писали эти конструкции...

Все равно не понимаю, зачем тогда переопределять данный метод, если поведение его вдруг поменяется в 40 местах, не проще ли написать тогда новый? Ведь переопределять надо так, чтобы логика не менялась...
Программистам С++ не понять этого ... я среди не понимающих ...
Хочется, пускай пишут ...


Цитата:
Это тоже не самое главное.
Всё же главное - чтобы код работал.
Я не за быдлокод, но красота кода — это не главное. Хорошо когда красота кода вырабатывается автоматически, (часто приходит с опытом), но красота ради красоты - это излишнее.
я бы добавил еще, что код должен быть в первую очередь логичный, я например веду разделение на контролеры вьюверы и прочее, но в тот же момент мне обсалютно перпендикулярно на MVC, так и тут нужно писать хорошо, но разрывать мозг в сторону: там супер, тут this ... это наверно действительно нужно было начинать программировать с actionScript, я начал с ассма, мне реально это все не понять

PS я в перепалки вступать не хочу, я просто высказал свое мнение !


Последний раз редактировалось easy.proger; 03.10.2010 в 00:02.
Старый 30.09.2010, 13:42
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Если логика не меняется - и переопределять не надо.

Старый 01.10.2010, 00:36
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 7  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Лишние буквы — плохо!
Код AS3:
this.property =  this.otherProperty + super.oldProperty;
по уровню сигнал/шум намного хуже чем,
Код AS3:
property =  otherProperty + oldProperty;
Ещё раз — лично моё имхо и ничего более
Я и this не пишу без явной надобности.. f4 спасает, хотя при использовании интерфейсов/базовых классов — ничего не спасает
UPD и честно говоря, меня мало волнует - пишут super/this или нет, главное чтоб код был понятен и нормально организован, и хотя бы в основном соблюдал конвенции, а эти мелочи — дело десятое.
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 01.10.2010 в 00:53.
Старый 01.10.2010, 01:27
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 8  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Если вы всюду пишете super, то это значит, что вы хотите, чтоб по умолчанию вызывался метод старшего в иерархии класса, даже если этот метод переопределён. Т.е. чтоб был не super, а notSuper, а поведение с super было по умолчанию. Но это бред и такого нет ни в одном языке, ибо полиморфизм и инкапсуляция.
super означает, что по каким-то очень специальным причинам вызывается не переопределённый в классе метод, а метод родителя. И пока этот метод не переопределён, то нечего писать супер, т.к. методы вообще переопределяются (а не пишутся другие) для того, чтоб их переопределённые вызывали.
this означает, что дёргается не локальная/глобальная переменная/функция, а именно поле/метод этого класса (и значит, похоже, тут есть локальная переменная с таким же именем и надо быть поосторожнее).
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 01.10.2010, 14:34
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 9  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
@-De-
Отлично сказано!
__________________
Отряд Котовскага

Старый 01.10.2010, 14:53
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 10  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Зайдём с другой стороны.
Люди пишут this чтобы сразу отличать локальные переменные от полей. this.addChild я считаю безграмотным. Да, он доступен в этом скоупе. Но в this его никто не объявлял.

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:02.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.