Почему значение статической переменной разрешено печатать непосредственно в основном методе, а для печати обычного значения целочисленного типа требуется создание объекта.
Хотя это глобально, но доступ к x также осуществляется в том же классе, тогда почему я не могу получить к нему прямой доступ?
При ответе, пожалуйста, осветите часть выделения памяти.
Насколько я понимаю, статическая, поскольку это глобальная переменная, хранящаяся при постоянной генерации, тогда как насчет этого примитивного int x, разве это не выделено в частном стеке?
public class Test{
int x = 7;
static int y = 10;
public static void main(String[] args) {
System.out.println("the value of y "+ y);
//compile error on sysout for value x like this,
//System.out.println("the value of x "+ x);
//While in this way i am able to print x, why?
Test test= new Test();
System.out.println("the value of x "+test.x);
}
}
Подробнее здесь: https://stackoverflow.com/questions/473 ... h-is-decla
Мобильная версия