Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / выделение памяти в JVM / 3 сообщений из 3, страница 1 из 1
01.02.2017, 21:23
    #39396769
GeneralMotors
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выделение памяти в JVM
День добрый, уважаемые жители форума.

Начинаю знакомиться с java и возник следующий вопрос :
есть пара классов :
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
public class Main {
    String variable  ;
    
    
    public static void main(String[] args) {
        System.out.println("Hello World!");
        B b = new B();
       
    }

    public Main(){
    	printVariable();
    }

    protected void printVariable(){
        variable = "variable is initialized in Main Class";
    }
}
public class B extends Main {
    String variable = null ;

    public B(){
        System.out.println("variable value = " + variable);
    }

    public void setVal(){
    	variable = "setVal";
    }
    protected void printVariable(){
        variable = "variable is initialized in B Class";
    }
}



Вопрос в следующем : почему в методе printVariable() не происходит присвоения значения полю B.variable ?
Если в классе B убрать инициализацию variable, то все отработает согласно полиморфизму, т.е. вызовется В.printVariable()
и значение B.variable станет равным "variable is initialized in B Class".

заранее спасибо всем ответившим.
...
Рейтинг: 0 / 0
01.02.2017, 21:42
    #39396783
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выделение памяти в JVM
new B() -> (...здесь Object...) -> Инициализация полей Main -> Вызов конструктора Main() -> вызов B.printVariable() (полиморфно) - сейчас в B.variable то, что и должно быть -> инициализация полей в B (здесь перезапись на null) -> вызов конструктора B() -> ...
...
Рейтинг: 0 / 0
01.02.2017, 21:57
    #39396786
GeneralMotors
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выделение памяти в JVM
no56892,

ясно, спасибо .
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / выделение памяти в JVM / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]