То, что вы определили, на самом деле не конструктор, а метод с именем Const
. Если вы измените свой код на что-то вроде этого, он будет работать:
Const c = new Const();
System.out.println( c.Const( "Hello!" ) );
Если конкретный конструктор не определен явно, компилятор автоматически создает конструктор без аргументов.
Конструктор не может вернуть значение. Это окончательно. В том же смысле - у него не может быть возвращаемого типа, и поэтому вы получаете ошибку компиляции. Вы можете сказать, что возвращаемое значение всегда неявно является объектом, созданным конструктором.
Конструкторы не могут возвращать значение; они, так сказать, возвращают построенный объект.
Вы получаете сообщение об ошибке, потому что компилятор ищет конструктор, который принимает строку в качестве аргумента. Поскольку вы не объявляли конструктор, единственным доступным конструктором является конструктор по умолчанию, который не принимает никаких аргументов.
Почему я говорю, что вы не объявили конструктор? Потому что, как только вы объявляете возвращаемое значение / тип для своего метода, это уже не конструктор, а обычный метод.
Из документации Java :
Класс содержит конструкторы, которые вызываются для создания объектов из схемы класса . Объявления конструктора выглядят как объявления метода , за исключением того, что они используют имя класса и не имеют возвращаемого типа .
Если вы уточните, чего вы пытаетесь достичь, кто-то может сказать вам, как вы можете достичь этой цели.
На самом деле конструктор в классе 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
Конструктор не может иметь возвращаемое значение как "нормальная" функция. Он вызывается, когда создается экземпляр рассматриваемого класса. Он используется для выполнения инициализации этого экземпляра.