Показать сообщение отдельно
Старый 02.07.2008, 12:53
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 429  
Ответить с цитированием
chingachgoog
Banned
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
iNils, riden, если хотите разобраться с объектами активации посмотрите посты 408 и 410.

Код:
function a () {
	trace ("f a this="+this);
	trace ("f a =="+(this.__proto__==b.prototype))
}
function b () {
	trace ("f b this="+this);        //f b this=[object Object]
	trace ("f b =="+(this.__proto__==b.prototype)) // f b ==true т.е. this - это в данном случае объект созданный оператором new
	this.c = a;
	a ();                //f a this=_level0
						 //f a ==false функция а является методом рута, а не объекта созданного new
	this.c ();           //f a this=[object Object]
						 //f a ==true функция a является методом объекта созданного new
	trace (this.c == a); //true
}
new b ();
wvxvw, улыбнуло

Цитата:
Сообщение от __etc Посмотреть сообщение
Договорившись с самим собой, ага. Не пойдет.
Что значит пойдет/не пойдет? Принципы ООП довольно общие и абстрактные. В них кстати вообще даже о классах речи не идет.
Тоже самое с принципом инкапсуляции. С точки зрения парадигмы ООП инкапсуляция достигается без всяких приватов. Примите это как факт. А вот с точки зрения любителей мертвых языков или других сторонников ООП на классах, это понятие (инкапсуляции) может быть более конкретизирована и ограничено. Но к общей парадигме ООП это уже никак не относится.

Цитата:
Сообщение от __etc Посмотреть сообщение
Я ОТВЕТИЛ, ЧЕРТ ВАС ДЕРИ! ...
...См. выше.
...Бла-бла-бла, опять же, см. выше ответ.
Я понял - для вас инкапсуляция не достижима без привата. В этом случае вы, конечно, ответили. Но эта ваша "инкапсуляция" - лишь частный случай инкапсуляции парадигмы ООП.

Цитата:
Сообщение от __etc Посмотреть сообщение
Не говорит. Что AS1, что JavaScript, оба не имеют средств для контроля принципов ООП. Точка, больше повторять не буду, ибо надоело.
Т.е. смотрим википедию и где нравится - цитируем, где не нравиться - опровергаем, так __etc? А ведь я всего лишь показал уровень википедии - не более.

Цитата:
Сообщение от __etc Посмотреть сообщение
private+interface. Всё. Такие понятия есть и в AS3, и в Java, и в C# и ещё куче языков. В AS1 — НЕТ! Они отсутствуют по определению.
...
ДА!
...Я не требую, это вы заявили, что AS1 — чисто ООП язык. Это не так, это псевдо-ООП максимум. Точка.
Ну вы бы так и сказали сразу, что не считаете прототипные языки - "истинно" ООП языками. Зачем стесняться?

Цитата:
Сообщение от __etc Посмотреть сообщение
Где? У вас один и тот же класс меняет поведение и родителя, это не полиморфизм, а полная чушь. Примерно как японец вдруг почернел и стал негром. Полиморфизм подразумевает наличие нескольких объектов, с одним интерфейсом. Внутренняя реализация в них разная, но интерфейс к объектам — одинаков. Вот это называется полиморфизмом
...
Вы опять абстрактное понятие парадигмы ООП суживаете до рамок ООП на классах. Полиморфизм - понятие действительно более интуитивное, чем конкретное (чего одно название стоит!). Но на самом деле тут не так все сложно. Это просто код, который ведет к различным результатам, в зависимости от наследования.
Интерфейсы - это всего лишь ОДИН ИЗ СПОСОБОВ ДОСТИЖЕНИЯ полиморфизма.
Да я взял один и тот же класс, но лишь для подчеркивания возможностей AS1. Метод getAngle полиморфен и в этом случае.

Цитата:
Сообщение от __etc Посмотреть сообщение
Нигде, с вашим понятием полиморфизма такое можно написать только на JavaScript и других прототипных языках, у которых стол может стать стулом без проблем простой заменой прототипа.
А что вас так злит в прототипных языкак? Что они смеют называться языками ООП? По-моему указанная возможность - весьма крутая вещь AS1.

Цитата:
Сообщение от __etc Посмотреть сообщение
Угу, особенно полиморфизм удался.
В рамках парадигмы ООП - удался. Код метода - один. Результат в зависимости от наследования - разный.


Последний раз редактировалось chingachgoog; 02.07.2008 в 12:57.