Что такое [Android] Java-эквивалент статического ключевого слова VB.NET? - PullRequest
4 голосов
/ 25 января 2012

Существует ли эквивалент Java - специально для Android - для ключевого слова VB.NET Static? Для тех, кто не знаком с VB.NET, возьмите следующий фрагмент кода ...

Sub MyFunc() 
    Static myvar As Integer = 0
    myvar += 1
End Sub 

Ключевое слово Static делает его таким, что myvar сохраняет свое значение между последующими вызовами MyFunc.

Таким образом, после каждого из трех вызовов MyFunc значение myvar будет: 1, 2 и 3.

Как сделать постоянную переменную перекрестного вызова в методе в Java? Вы можете?

Ответы [ 2 ]

4 голосов
/ 25 января 2012

Нет. В методе у Java нет чего-то, что можно запомнить при различных вызовах.

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

Переменные экземпляра различны для каждого объекта / экземпляра, в то время как переменные класса (или статические переменные) одинаковы для всех объектов своего класса.

например:

class ABC
{
    int instance_var; // instance variable
    static int static_var; // class variable
}

class ABC_Invoker
{
    public static void main(string[] args)
    {
        ABC obj1 = new ABC();
        ABC obj2 = new ABC();

        obj1.instance_var = 10;
        obj2.instance_var = 20;

        ABC.static_var = 50; // See, you access static member by it's class name

        System.out.prinln(obj1.instance_var);
        System.out.prinln(obj2.instance_var);
        System.out.prinln(ABC.static_var);
        System.out.prinln(obj1.static_var); // Wrong way, but try it
        System.out.prinln(obj2.static_var); // Wrong way, but try it
    }
}
0 голосов
/ 25 января 2012

Это статическое ключевое слово в Java

public static String mVar = "Some Value";
...