2015-02-06 2 views
0

У меня есть статическая переменная и локальная переменная в статической функции с тем же именем. В этой функции, как я могу получить доступ к статической переменной.Как получить доступ к глобальной статической переменной в статической функции с переменной с тем же именем

static String s = "class level"; 
static private void mx(String s) 
{ 
System.out.println(s); // i want class level 
} 
+0

@Erik: что не будет работать. Это статично, и нет «этого». –

+0

все же будьте осторожны в отношении недоразумений: в Java нет такой вещи, как глобальная переменная. – Stultuske

ответ

3

Просто использовать его полное имя: ClassName.s

2

Внутри функции, используя только «s» будет локальная статическая переменная , Чтобы получить доступ к статическому члену (функции или класса), вы можете вызвать его с помощью

Classname.membername 

В вашем случае, если вы хотите, чтобы напечатать локальную переменную, можно использовать

System.out.println(s); 

как вы правильно сделали , Скажите, что все ваше дело завернуто в класс под названием «Тест». Так,

Class Test{ 
    static String s = "Global"; 
    static private void mx(String s) 
    { 
     System.out.println(s); // i want global 
    } 
} 

Итак, для того, чтобы напечатать как Strings (местные с, и "глобальные" с),

Class Test{ 

    static String s = "Global"; 
    static private void mx(String s) 
    { 
     System.out.println(s);   //prints local s 
     System.out.println(Test.s); //prints "global" s 
    } 

}