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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Sep 2001
Адрес: Asgard
Сообщений: 85
Отправить сообщение для SphinX с помощью ICQ
Post [FMX] Object-oriented programming

Считайте, ... что это [man]ual.

Итак ... ... ...

в основном мысли из книги Гради Буча "Обьекно-ориентированный анализ и проектирование" советую!!!

Концепции ООП реализованные в FMX.
  • Инкапсуляция.
    разделение элементов объекта, определяющих его устройство и поведение, думаю, мало где её нет ...
  • Наследование.
    это реализация такого отношения между классами, что подкласс(который наследует) повторяет структуру и поведение своего суперкласса(который наследуется)
  • Полиморфизм.
    <поли> - много <морфос> - форма; к сожалению я не смог найти достаточно красивого определения, так что придётся на пальцах объяснять ... представьте себе некое дерево классов (допустим пространтвенных фигур) у кждого класса: и у элипсоида, и у куба есть метод "рисовать", НО ведь фигуры разные поэтому и методы должны работать по-разному; вот это и есть полиморфизм, когда один и тот же метод выполняется по-разному для разных классов
  • Механизм виртуальных функций.
    на примере покажу
теперь пример кода реализующий сразу всё ...
Код:
//определяем суперкласс
function SuperClass()
{
	trace("construction of class: SuperClass");
	this.property = "property of SuperClass";
	this.method = function()
	{
		trace("method of class: SuperClass");
		trace(this.property);
	}
}

//определяем подкласс
function SubClass()
{
	this.__proto__ = new SuperClass();
	trace("construction of class: SubClass");
	this.method = function()
	{
		this.__proto__.method();
		trace("method of class: SubClass");
	}
}

//работаем
trace("SuperClass--------------");
super = new SuperClass();
super.method();
trace("SuperClass--------------");

trace("SubClass--------------");
sub = new SubClass();
sub.method();
trace("SubClass--------------");
а это вывод этого кода ...
Код:
SuperClass--------------
construction of class: SuperClass
method of class: SuperClass
property of SuperClass
SuperClass--------------
SubClass--------------
construction of class: SuperClass
construction of class: SubClass
method of class: SuperClass
property of SuperClass
method of class: SubClass
SubClass--------------
а теперь вопрос: когда писал слово "super" в редакторе FMX оно вдруг засветилось, непонятно, что же оно даёт ???

Старый 31.08.2002, 01:34
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 2  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
ой какой ты умныыый :)
прям страшно становится :)

а в хелп посмотреть ты конечно не догадался ? :)

Старый 31.08.2002, 08:05
SphinX вне форума Посмотреть профиль Отправить личное сообщение для SphinX Посетить домашнюю страницу SphinX Найти все сообщения от SphinX
  № 3  
SphinX

Регистрация: Sep 2001
Адрес: Asgard
Сообщений: 85
Отправить сообщение для SphinX с помощью ICQ
я, короче, экспериментировал с переводом на руссий документации по FMX и теперь у меня ни русской ни английской нету
а субж затеял только из-за того, что не нашёл ничего о виртуальных функциях в обсуждении урока на эту же тему ...

Старый 31.08.2002, 09:12
SphinX вне форума Посмотреть профиль Отправить личное сообщение для SphinX Посетить домашнюю страницу SphinX Найти все сообщения от SphinX
  № 4  
SphinX

Регистрация: Sep 2001
Адрес: Asgard
Сообщений: 85
Отправить сообщение для SphinX с помощью ICQ
super - это супер ... вот новая версия вчерашнего кода:
Код:
//определяем суперкласс
function SuperClass()
{
	this.create();//пусть это стандартный конструктор
}

//определяем конструктор
SuperClass.prototype.create = function()
{
	trace("construction of class: SuperClass");
}

//это, что называется "some_method_or_property"
SuperClass.prototype.method = function()
{
	trace("method of class: SuperClass");
}

//аналогично с подклассом
function SubClass()
{
	this.create();
}

SubClass.prototype = new SuperClass();// !!!

SubClass.prototype.create = function()
{
	super.create();
	trace("construction of class: SubClass");
}

SubClass.prototype.method = function()
{
	super.method();
	trace("method of class: SubClass");
}

trace("-----------------------------");
one = new SuperClass();
one.method();
trace("-----------------------------");
two = new SubClass();
two.method();
trace("-----------------------------");

Старый 31.08.2002, 09:14
SphinX вне форума Посмотреть профиль Отправить личное сообщение для SphinX Посетить домашнюю страницу SphinX Найти все сообщения от SphinX
  № 5  
SphinX

Регистрация: Sep 2001
Адрес: Asgard
Сообщений: 85
Отправить сообщение для SphinX с помощью ICQ
заметно красивше ...

Старый 31.08.2002, 14:31
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 6  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
...ты кого-то хотел удивить раскидыванием пальцев ? :))
извини :) могу тебя огорчить :)

Старый 31.08.2002, 22:19
SphinX вне форума Посмотреть профиль Отправить личное сообщение для SphinX Посетить домашнюю страницу SphinX Найти все сообщения от SphinX
  № 7  
SphinX

Регистрация: Sep 2001
Адрес: Asgard
Сообщений: 85
Отправить сообщение для SphinX с помощью ICQ
тебя не понимаю, почему же ты думаешь что это "раскидывание пальцев", я всё это положил в форум для пользы (если кончно это кому-нибудь надо ) если бы я зашёл на форум с месяц назад и увидел этот топик, то помог бы он мне ОЧЕНЬ сильно ...

а вот ты показываешь себя не с лучшей стороны, необоснованная критика понимаш

у Ричарда Баха есть рассказик "Иллюзии", дык вот, цитата:
"Самые простые вопросы на самом деле самые сложные. Где ты родился? Где твой дом? Куда ты идешь? Что ты делаешь? Думай об этом время от времени и следи за тем, как меняются твои ответы."

Старый 31.08.2002, 22:30
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 8  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
для ЧЬЕЙ пользы, можно поинтересоваться ? :)))

твои слова:
Цитата:
а субж затеял только из-за того, что не нашёл ничего о виртуальных функциях
а все вышеизложенное иллюстрирует только то, что ты догадался поглядеть в хелп только после наводящего вопроса :)))

пользы не видать совсем:
— в первом посте код не откомментирован, поэтому абсолютно не понятно КАК он иллюстрирует принцыпы ООП, которые ты привел выше...
— во втором посте откоментированы простые вещи, но нет коментариев про собсно тему поста - указатель super. ...

так что... ИМХО ты хотел показать, что разобрался в том, что написано в хэлпе, мол вот ты какой, северный олень :)))

если я не прав - я готов это признать... но тебе придется объяснить мне, что в моих словах не так :)))


Последний раз редактировалось Nox Noctis; 31.08.2002 в 22:32.
Старый 01.09.2002, 08:00
SphinX вне форума Посмотреть профиль Отправить личное сообщение для SphinX Посетить домашнюю страницу SphinX Найти все сообщения от SphinX
  № 9  
SphinX

Регистрация: Sep 2001
Адрес: Asgard
Сообщений: 85
Отправить сообщение для SphinX с помощью ICQ
мне обьяснять что такое ООП на примере FMX както даже неприятно было бы, я выложил исходники только как демонстрацию как ООП сделан на FMX (люди понимающие с первого взгляда разбурутся где предки где потомки, что и как)

(блин, заставляешь оправдываться )
про super я узнал когда писал такое символическое имя, редактор подсветил синтакс, и узнал как им пользоваться не из хелпа, а маленько поэкспериментировав с Flash - компонентами (и чуть пораньше, чем ты свой топик об этом выложил )
про северного оленя ты совсем палку загнул, на ACM'овских олмпиадах был? - нет, значит надо ещё думать кто олень
Цитата:
если я не прав - я готов это признать... но тебе придется объяснить мне, что в моих словах не так

Старый 01.09.2002, 08:10
llllllllll вне форума Посмотреть профиль Отправить личное сообщение для llllllllll Найти все сообщения от llllllllll
  № 10  
llllllllll

Регистрация: Feb 2001
Сообщений: 1,893
Мдя = function(){
trace( this(мдя =)));
}

Создать новую тему   Часовой пояс GMT +4, время: 10:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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