2013-05-15 2 views
2

Я хочу знать, что это правильный способ сделать это на Java. Мой тестовый код:Должен ли я инициализировать все переменные?

public class InitializeTest { 
    int i; 
    int b; 
    int x; 
    String frase; 

    public static void main (String args[]) { 
     InitializeTest IT = new InitializeTest(); 
     System.out.println(IT.i=IT.getI()); 
     System.out.println(IT.b=IT.getB()); 
     System.out.println(IT.x=IT.getX());   
      } 

    public int getI(){ 
     return 3;} 
    public int getB(){ 
     return 5;} 
    public int getX(){ 
     return 8;} 
} 

Если я инициализировать переменные я, Ь и х или нет? Что изменится, если нет? Я читал об этом, но это не ясно для меня, может ли кто-нибудь дать мне четкий ответ?

Я читал об этом здесь Do I really have to give an initial value to all my variables?, но не знаю, является ли то же самое для Java.

+0

Почему у вас есть добытчики возвращающихся жестко закодированные числа? Также System.out.println (IT.i = IT.getI()); <- это путаница, а не хорошая практика. Боюсь, этот код, кажется, ошибочен с нуля. –

+0

int переменные по умолчанию инициализированы 0. см. Эту ссылку http://stackoverflow.com/questions/2437603/why-does-using-a-default-valued-java-integer-result-in-a-nullpointerexception –

ответ

4

INT переменных по умолчанию инициализируется с 0. этой ссылки Why does using a default-valued Java Integer result in a NullPointerException?

Если я инициализировать переменный я, б и х или нет? Какие изменения, если нет?

поэтому ответ нет. Не требуется

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

7

Первоначальные примитивы класса Java инициализируются значениями по умолчанию и объектами в значение null. Так что числовые типы инициализируются на 0.

Доступ к неинициализированной локальной переменной даст вам ошибку компилятора.

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html Смотрите раздел «Значение по умолчанию»

+0

Спасибо , это одна из вещей, которые я хотел знать! – DavidM

+5

Локальные переменные несколько отличаются; компилятор никогда не присваивает значение по умолчанию неинициализированной локальной переменной. Поэтому этот ответ НЕ всегда верен. – Sam

+0

Я тоже хотел знать об этой ошибке компиляции! Благодаря! – DavidM