Почему значения по умолчанию не назначены для переменных, которые не были инициализированы в классе с главной функцией ???Значения по умолчанию - Java Clarification
class Test {
public static void main(String[] args) {
int x;// x has no default value
String y;// y has no default value
System.out.println("x is " +);
System.out.println("y is " +);
}
}
Принимая во внимание, что значения по умолчанию присваиваются, если переменные остаются неинициализированными в классе без какой-либо основной функции.
class Student {
String name; // name has default value null
int age; // age has default value 0
boolean isScienceMajor; // isScienceMajor has default value false
char gender; // c has default value '\u0000'
int x;
String y;
}
Вы неправильно понимаете ситуацию. Дело не в том, что у одного класса есть основная функция, а у другого нет. Это то, что в первом примере переменные объявляются * внутри * функции (они являются локальными переменными), а во втором они объявляются * вне * функции на уровне класса (это * поля * или * переменные-члены *). –