java объект не скомпилирован - PullRequest
0 голосов
/ 28 февраля 2020

У меня следующий java сегмент кода,

class Box{
    int length;
    int width;
    int height;

    Box(int length, int width, int height){
        this.length=length;
        this.width=width;
        this.height=height;
    }
    Box(){
        this.length=1;
        this.width=1;
        this.height=1;
    }
}
class Demo{
    public static void main(String args[]){
        Box b1=new Box(); //calling default
        System.out.println("Length : "+b1.length);
        System.out.println("Width  : "+b1.width);
        System.out.println("Height : "+b1.height);

        b1.Box(12,5,3);
        System.out.println();
    }
}

, но при компиляции файла java выделяется следующий код, а не компиляция b1.Box(12,5,3);

в чем проблема и как это можно исправить?

1 Ответ

0 голосов
/ 28 февраля 2020

Box(12,5,3) является параметризованным конструктором, а не методом класса Box, поэтому нет необходимости вызывать его, используя ссылку. Просто вызовите его напрямую, не используя объект.

Поэтому вместо объявления b1 с конструктором по умолчанию вы можете использовать параметризованный метод следующим образом:

Box b1 = new Box(12, 5, 3);

Или вы можете создать Функция установки в классе Box, если вам нужно установить значения позже как

public void setDimensions(int length, int width, int height) {
    this.length = length;
    this.width = width;
    this.height = height;
}

, тогда b1.Box(12,5,3); становится b1.setDimensions(12,5,3);

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