2015-01-31 3 views
-4

В JS, вы можете сделать, например:Java - Частная сфера

(function() { 
    var x = 7; 
})(); 

console.log(x); 

, который будет регистрировать неопределенными, поскольку х определяется только в его собственном маленьком объеме.

Каков первоначальный/лучший/нормальный способ сделать то же самое в java?

Не это, потому что я думаю, что это выглядит довольно уродливо:

Спасибо.

+0

Почему downvote? Пожалуйста, объясните, почему именно – super

+0

Недостаточно усилий для исследования. –

+1

Действительно, если вы это сделали, вы бы добавили этот комментарий раньше. – super

ответ

-1

Если вы хотите х быть частным, то и может объявить его закрытым, как // вы можете дать любой из спецификаторов доступа, если и не хотят х быть частным

private int x; 

and can initialize it later 
as 

public static void main(String[] args) { 
    do { 
     x = 7; 
    } while (false) {} 

    System.out.println(x); 
} 

Ваш код:

public static void main(String[] args) { 
     do { 
      int x = 7; 
     } while (false) {} 

     System.out.println(x); 
    } 

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

+1

Он попросил переменные области метода, а не поля классов. –

2

JavaScript является интерпретированным языком, поэтому вы получите такие ошибки во время выполнения. В разнице Java - это скомпилированный язык, поэтому компилятор ловит эту ошибку во время компиляции.

Невозможно получить эту ошибку в программах Java во время выполнения.

+0

Су, что бы тогда выглядел код Java? – super

+0

@Murplyx, у вас там уже должно быть достаточно, чтобы получить ошибку для области переменной – Abdi

+0

k, но есть ли какой-нибудь *** smooother *** способ сделать это, чем уродливый цикл while, который даже не является циклом? – super