> -- Сергей Губанов писал(а):
> Меня в C# "радует" вот такая возможность:Всё компилируется и даже "работает".
Попробовал в Яве. Тоже работает, причём
System.out.println("A.a == " + A.a + "; B.b == " + B.b); //выдаёт A.a == 2; B.b == 1
System.out.println("B.b == " + B.b + "; A.a == " + A.a); //выдаёт B.b == 2; A.a == 1
А вот, что ещё можно:
## Код:
```
public class A {
   public static int a;
}
public class B {
   public static final int B = A.a;
}
```

Особенно прикольно вносить изменения в программы с подобным кодом и узнавать, что из-за смещения момента загрузки класса, константа приобретает значение переменной, отличное от предыдущего, из-за чего логика программы рушится.
Фактически в Ява нельзя объявить именованную константу - это лишь особые переменные, приобретающие значение один раз.
В принципе, можно писать приложения - "шедевры" вообще без функций, а всю работу выполнять объявлением таких вот почти констант.