Присвоение значений переменным - PullRequest
0 голосов
/ 02 февраля 2012

Почему этот фрагмент кода показывает ошибку компиляции

public class Foo {
    int a=5;
    a=4;
}

Ответы [ 2 ]

6 голосов
/ 02 февраля 2012

Язык Java допускает только объявления членов на уровне класса, но не произвольный код.

Чтобы иметь 4, назначенные a при создании объектов Foo, вы должны поместить это назначение либо в конструкторили в блоке инициализатора.

Это блок инициализатора:

public class Foo {
    int a = 5;
    {
        a = 4;
    }
}

Это конструктор:

public class Foo {
    int a = 5;
    public Foo() {
        a = 4;
    }
}
1 голос
/ 02 февраля 2012

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

 public class Foo{
       int a = 5;
       //Constructor
       void Foo(){
             a = 4;
       }
       //Normal Function
       void Change(){
             a = 4;
       }
 }

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...