Показать сообщение отдельно
Старый 08.07.2008, 08:33   #21
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Сообщение от Phantom_wc Посмотреть сообщение
Блин, а что делать, если мне нужно глобальную переменную использовать? Ну я не знаю, как это в Джаве называется. То есть мне нужно в либе сделать несколько функций/процедур, которые будут использовать одни и те же переменные. Можно, конечно, сделать, чтобы функции возвращали значения, которые потом использовались бы в других функциях путём явной передачи их туда. Но дело в том, что там функция возвращает не одну переменную, а несколько. Может можно сделать что-то типа массива или... я даже не знаю. Чтобы в одной переменной сразу кучу передавать.
- - -
У меня класс есть, я его хотел подключить к мидлет паскалю хитрым способом. Типа написать либу, которая будет к тому классу обращаться по-мидлетпаскалевски, все процедуры объявил статичными, а при компиляции мне выдало, что те функции, к которым я пытаюсь обратиться из либы не являются статичными. То есть что, получается, я не могу из статичной функции одного класса обратиться к нестатичной функции другого класса? О_о Как выходить из такой ситуации?
- - -
В мидлет паскале можно создавать комбинированный тип данных. Полагаю, что это может пригодится, но как его связать с джавой?
- - -
P.S: подозреваю, что я опять всё напутал и вместо слова "функция" следовало употреблять слово "метод" =)
Глобальные переменные нужно делать статичные, но и процедуры при этом должны быть тоже статичные. Типа так:

class Lib_test
{
    public static int a;
    public static int b;
    public static String s;  // Глобальные переменные

    public static void Function1()          // Пример функции
    {
         a = 1; b = 3; s = "Ok";
    }

    public static int Function2()           // Другой пример функции
    {
         a += b;
         return a;
    }
}
Другой пример. Как из статической функции одного класса вызывать нестатическую функцию из другого класса. Допустим у тебя есть класс:

class MyClass
{
    public int a;
    public int b;   // какие-то переменные

    public void Function1()
    {
         a = 5;
    }

    public int Function2()
    {
         return a;
    }
}
Ясно, что из MP ты к этим функциям не обратишься т.к. они не статичные. Тогда пишем небольшую библиотеку со статичными функциями, которая и будет вызывать наши нестатичные функции.

class Lib_test
{
    public static MyClass my;

    public static void Function1()
    {
        my.Function1();
    }

    public static int Function2()
    {
         return my.Function2();
    }
}
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dmitriy-dim (20.09.2010)