решил немного побаловаться статическим импортом, в смысле немного поэкспериментировать.
package harc61;
public class B {
static int k=58;
}
..............................
package harc61;
import static harc61.B.k;
public class C {
String seq = "c";
k=8; //не распознает, пишет unknown class 'k', Identifier expected,
//Unexpected Token
{k=8;} //распознает
static {k=8;} //распознает
public static void main(String[] args) {
k=8; //распознает
}
}
если бы и в случае static{} не распознавала, я бы смог как то предположениями себе уговаривать без дополнительного изучения данной ситуации принять результат как факт, а так в тупике Я.
ну вопрос таков: Почему статический импорт почти во всех местах распознается, кроме того одного места?
Это одно место - тело класса, в котором нельзя присваивать переменным другие значения.
Важно понимать разницу между присвоением и инициализацией. Когда вы присваиваете переменной другое значение, это значит, что это присвоение является частью какой-то череды команд, которые должны выполняться в строго определённом порядке.
Инициализация же переменной происходит раньше (при создании экземпляра класса, если переменная нестатическая, либо при первом обращении к классу в обратном случае), она является, грубо говоря, фундаментом для дальнейшего выполнения программы.
Тело класса служит пространством для объявления и инициализации переменных и методов, поэтому присвоение там запрещено. Для этого есть блоки инициализации, в которых, не смотря на название, можно присваивать значения.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
1) Возможно ли обойтись без диалога? У нас своеобразный дизайн под данную авторизацию2) Как можно настроить стиль для данного диалога? Цвет...
Есть текстовый файл, в который записаны числа (каждое с новой строки) в таком формате: 1075 5018 6542 1456 и тд Хочу создать ArrayList массивов и каждый...
Всем привет! У меня есть два EnumВ одном написана стоимость, в другом предмет