Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 09.03.2009, 19:41   #1
DeMoNN
AnyKey`щик
 
Регистрация: 03.03.2009
Сообщений: 18
Написано 3 полезных сообщений
(для 4 пользователей)
Как создать переменную без типа?

сабж
Как ее создать и присвоить ей значение любого типа/класса
аналог типа variant из делфи
Возможно ли это?
Если нет, то как это реальзавать на яве?
(Offline)
 
Ответить с цитированием
Старый 09.03.2009, 20:02   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Как создать переменную без типа?

В MP это точно невозможно, в java, на сколько я знаю, тоже.
(Offline)
 
Ответить с цитированием
Старый 09.03.2009, 20:45   #3
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Как создать переменную без типа?

Я пробовал в вектор совать разные типы. Получилось. Можно засунуть в ячейки одного вектора разные типы. Но чтобы потом извлечь, нужно написать в скобочках круглых тип извлекаемых данных, иначе просто напросто не скомпилируется. То есть ты всё равно должен будешь наперёд знать какой тип данных хранится в данной ячейке.
(Offline)
 
Ответить с цитированием
Старый 09.03.2009, 21:10   #4
jimon
 
Сообщений: n/a
Ответ: Как создать переменную без типа?

по-идее должен быть указатель без типа, но указатель только указывает на обьект, обьект без типа не может быть

Phantom_wc
ты работал с указателями наверно
 
Ответить с цитированием
Старый 09.03.2009, 21:22   #5
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Как создать переменную без типа?

jimon, если честно, то я вообще не слышал, что в java есть указатели. Если есть, то вполне возможно, что в векторе они и используются. Я не смотрел как он устроен. Может в Java вообще все операции происходят с указателями? О_о Ждём Пилигрима, он всех рассудит =)
(Offline)
 
Ответить с цитированием
Старый 09.03.2009, 21:38   #6
jimon
 
Сообщений: n/a
Ответ: Как создать переменную без типа?

Phantom_wc
в паскале точно есть указатели (насчёт midletpascal не знаю)
 
Ответить с цитированием
Старый 09.03.2009, 22:33   #7
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Как создать переменную без типа?

Сообщение от jimon Посмотреть сообщение
Phantom_wc
в паскале точно есть указатели (насчёт midletpascal не знаю)
В паскале есть, но в MP нет и сотой доли того, что есть в паскале.
В MP указателей нет, поскольку их нет в j2me(может быть нечто подобное существует на уровне JVM, но в языке указатели не реализованы).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (09.03.2009)
Старый 10.03.2009, 00:35   #8
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Как создать переменную без типа?

Все переменные-объекты суть указатели. Просто неявные. В яве все что не static, создается в куче, делайте выводы.
В векторе необязательно знать какой тип хранится в ячейке, достаточно знать возможные варианты и проверять с помощью instanceof
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (10.03.2009)
Старый 10.03.2009, 00:51   #9
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Как создать переменную без типа?

instanceof - это метод вектора чтоли? Не слышал о таком.
Добавил позже:
Нашёл в интернете пример. Это вроде как оператор что ли?
if(str instanceof String){ ... } 
Как я понял, если str является String, то условие будет TRUE?
Очень интересная вещь. Java продолжает меня удивлять и нравится мне всё больше и больше =)

Последний раз редактировалось Phantom, 10.03.2009 в 01:17.
(Offline)
 
Ответить с цитированием
Старый 10.03.2009, 02:20   #10
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Как создать переменную без типа?

В java есть способы записи в переменную разные типы данных. Там есть класс под названием Object и от этого класса все типы данных наследут свои свойства. Так что если объявить пременную или массив переменных типа Object, то туда можо записывать информацию любых типов. Класс Vector - это типа расширяемый массив элементов типа Object, так что в векторе можно хранить абсолютно любую информацию.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (10.03.2009)
Старый 10.03.2009, 12:56   #11
gost6681
Оператор ЭВМ
 
Регистрация: 06.11.2008
Сообщений: 26
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как создать переменную без типа?

вот что нашел в стандартном факе, может быть это подойдет?:

Данная особенность языка позволяет создавать собственные типы данных, являющиеся совокупностью других типов. Например, если вы пишете игру, где игрок управляет персонажем на экране, вы вполне можете использовать комбинированный тип для описания позиции, здоровья и прочих параметров персонажа:

type heroType = record
positionX, positionY: integer;
health: integer;
end;

Чтобы создать переменную свежезаданного типа, используйте обычную формулировку в секции 'var':

var hero: heroType;

Также вы можете использовать созданный тип в качестве параметра, при описании процедур и функций:

function isHeroDead(hero: heroType): boolean;
begin
if (hero.health <= 0) then
isHeroDead := true;
else
isHeroDead := false;
end;

Новый тип может быть определен непосредственно в секции 'var':

var hero: record
positionX, positionY: integer;
health: integer;
end;

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

...
{ передвигаем персонажа вправо }
hero.positionX := hero.positionX + 1;
...

Нельзя копировать впрямую из переменной в переменную данного типа:

var
a, b: record
x: integer;
end;
begin
...
a := b; { это - неправильно }
...
a.x := b.x; { нужно копировать каждый элемент комбинированного типа }
end.
(Offline)
 
Ответить с цитированием
Старый 10.03.2009, 12:59   #12
gost6681
Оператор ЭВМ
 
Регистрация: 06.11.2008
Сообщений: 26
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Как создать переменную без типа?

И если это правльно, то обьясните мне что это за тип? И пример если можно, а то я не понял.
(Offline)
 
Ответить с цитированием
Старый 10.03.2009, 13:50   #13
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Как создать переменную без типа?

я не перечитывал всё, поэтому мож не в теме, но во многих языках есть базовый тип переменных.

Например: object в С# и BlitzMAX, Variant в Delphy и Visual Basic...
Переменная этого базового типа может хранить в себе значение любого типа данных (по сути это ссылка на оригинальный объект определённого типа).

Однако перед использованием данные из этой переменной надо извлечь... с помощью каста или спец функции или метода класса.
__________________
(Offline)
 
Ответить с цитированием
Старый 10.03.2009, 16:05   #14
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Как создать переменную без типа?

То что описал gost6681 преобразуется в классы без методов, только с полями.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать карту для игры типа GTA2 cancel 3D-программирование 6 28.02.2010 20:11
Как прочитать текст из txt сразу в переменную? xsnakes Visual Basic 3 10.12.2009 18:59
Как создать Dll? pipns Разработка LIB 4 16.06.2009 18:11
Создать новый элемент типа - точную копию уже существующего элемента! ELIAS Blitz3D 2 03.03.2009 13:18
Как создать интерфейс типа Excel-таблицы? VM Основной форум 2 01.10.2007 16:01


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com