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

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

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

Регистрация: Jun 2012
Сообщений: 40
По умолчанию Экземпляр как параметр функции

если передать экземпляр как параметр в функцию, то в виде чего он будет существовать?

этот пример как-то связан с ответом на мой вопрос

Код AS3:
function example (class:Object) 
{
class.method();
}
 
Main.example(new Class());

Старый 18.09.2012, 18:58
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
В виде ссылки на экземпляр класса. В случае простых объектов – в виде копии экземпляра.
P.S. Вы не в викторину играете?

Старый 18.09.2012, 19:11
wisconsin вне форума Посмотреть профиль Отправить личное сообщение для wisconsin Найти все сообщения от wisconsin
  № 3  
Ответить с цитированием
wisconsin

Регистрация: Jun 2012
Сообщений: 40
Цитата:
Сообщение от bav Посмотреть сообщение
В виде ссылки на экземпляр класса. В случае простых объектов – в виде копии экземпляра.
P.S. Вы не в викторину играете?
обычно передается значение, например 2 или "строка"
а что передают экземпляры с не примитивным типом данных? ведь они не имеют значени


не викторина, я просто удаляю пробелы

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Оператор new возвращает ссылку на вновь созданный экземпляр класса.
Код AS3:
Main.example(new Class());
Здесь в функцию example и передается эта ссылка.

Старый 18.09.2012, 21:36
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 5  
Ответить с цитированием
Frost47rus
[+4 08.09.13]

Регистрация: May 2012
Сообщений: 131
Код AS3:
public class SomeClass {
	public function SomeClass() {
 
	}
 
	public function someMethod():void {
		trace('ALL YOUR BASE ARE BELONG TO US');
	}
}
 
public class Main {
	public function Main() {
		example(new SomeClass());
	}
 
	public function example(e:SomeClass):void {
		e.someMethod(); //ALL YOUR BASE ARE BELONG TO US
	}
}

Старый 18.09.2012, 22:10
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 6  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
Боюсь что могу этим добавить вам каши в голове, но считаю нужным упомянуть что

Экземпляр класса это объект, Класс это тоже объект, и функция это объект

все объекты находится в памяти компьютера, их можно создавать и менять, но вот передавать их невозможно...
передавать можно только ссылки на эти объекты

немножко улучшил пример:
Код AS3:
public class SomeClass {
	public function SomeClass() { } 
	public function someMethod():void { trace('ALL YOUR BASE ARE BELONG TO US'); }
}
 
public class Main {
	public function Main() {
 
		var something:SomeClass = new SomeClass(); //переменная something это ссылка на объект класса SomeClass 
 
		example1(something); // передаём в качесве параметра ссылку на объект
		example2(SomeClass); // передаём в качесве параметра ccылку на класс
		example3(something.someMethod); // передаём в качесве параметра ccылку метод объекта класса SomeClass 
	}
 
	public function example1(something:SomeClass):void {
		something.someMethod(); //ALL YOUR BASE ARE BELONG TO US
	}
 
	public function example2(сlazz:Class):void {
		var something:SomeClass = new clazz(); //создаём объект
		something.someMethod(); //ALL YOUR BASE ARE BELONG TO US
	}
 
	public function example3(fn:Function):void {
		fn(); //ALL YOUR BASE ARE BELONG TO US
	}
}
__________________
Хороший отдых - половина работы.

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

Регистрация: Jun 2012
Сообщений: 40
а если созданный объект не инициализирован, то к нему нельзя будет обратиться(ссылаться), и он будет бесполезно занимать память?

з.ы. примеры шикарные...

Старый 18.09.2012, 22:45
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 8  
Ответить с цитированием
Krusty

Регистрация: Jul 2007
Сообщений: 393
Цитата:
Сообщение от wisconsin Посмотреть сообщение
а если созданный объект не инициализирован, то к нему нельзя будет обратиться(ссылаться), и он будет бесполезно занимать память?

з.ы. примеры шикарные...
Объект не может быть не "инициализирован". Иначе его тупо нет. Создание объекта-это вызов конструктора его класса.
Вы, кажется, путаете объект и класс.

Старый 18.09.2012, 22:46
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 9  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
если на созданный объект нету никаких ссылок то он будет удалён из памяти сборщиком мусора
__________________
Хороший отдых - половина работы.

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

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

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


 


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


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