Если один конструктор вызывает другой конструктор, который выделяет память для объекта - PullRequest
4 голосов
/ 20 октября 2019

Давайте рассмотрим следующий код:

class Auto{
    String color;
    int mileage
    public Auto (String color){
       this.color=color;
    }
    public Auto (String color, int mileage){
       this(color);
       this.mileage=mileage;
    }
}

какой конструктор является тем, который "конструирует" объект, и что делает другой?

почему это разрешено? Каковы преимущества ? есть ли минусы?

1 Ответ

3 голосов
/ 20 октября 2019

В Java память выделяется во время выполнения на основании определения класса. Это не имеет ничего общего с конструктором, который используется для инициализации объекта. Память выделяется неявно в куче с помощью оператора new.

Распределение памяти в Java - см. Раздел «Обзор».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...