Java: Как конструктор может возвратить значение? [дубликат]

16
задан hhh 4 April 2010 в 11:45
поделиться

5 ответов

То, что вы определили, на самом деле не конструктор, а метод с именем Const . Если вы измените свой код на что-то вроде этого, он будет работать:

Const c = new Const();
System.out.println( c.Const( "Hello!" ) );

Если конкретный конструктор не определен явно, компилятор автоматически создает конструктор без аргументов.

25
ответ дан 30 November 2019 в 15:12
поделиться

Конструктор не может вернуть значение. Это окончательно. В том же смысле - у него не может быть возвращаемого типа, и поэтому вы получаете ошибку компиляции. Вы можете сказать, что возвращаемое значение всегда неявно является объектом, созданным конструктором.

1
ответ дан 30 November 2019 в 15:12
поделиться

Конструкторы не могут возвращать значение; они, так сказать, возвращают построенный объект.

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

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

Из документации Java :

Класс содержит конструкторы, которые вызываются для создания объектов из схемы класса . Объявления конструктора выглядят как объявления метода , за исключением того, что они используют имя класса и не имеют возвращаемого типа .

Если вы уточните, чего вы пытаетесь достичь, кто-то может сказать вам, как вы можете достичь этой цели.

23
ответ дан 30 November 2019 в 15:12
поделиться

На самом деле конструктор в классе java не может возвращать значение, оно должно быть в следующей форме

public class Test {
 public Test(/*here the params*/) {
   //this is a constructor
   //just make some operations when you want to create an object of this class
 }
}

проверьте эти ссылки http://leepoint.net/notes-java/oop/ constructors / constructor.html http://java.sun.com/docs/books/tutorial/java/javaOO/constructors.html

9
ответ дан 30 November 2019 в 15:12
поделиться

Конструктор не может иметь возвращаемое значение как "нормальная" функция. Он вызывается, когда создается экземпляр рассматриваемого класса. Он используется для выполнения инициализации этого экземпляра.

1
ответ дан 30 November 2019 в 15:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: