public class Person {
public String Person(String name) {
return name;
}
public static void main(String[] args) {
Person one = new Person("hendry");
}
}
我做错了什么?
答案 0 :(得分:2)
这不是构造函数,因为您已声明了返回类型。这只是一个恰好与你的同名的方法。
public String Person(String name) {
如果没有显式构造函数,编译器会插入一个没有参数的隐式默认构造函数,因此与参数的数量存在冲突。
删除返回类型;不应在构造函数上指定返回类型,甚至不应指定void
:
public Person(String name)
不要从构造函数返回任何内容。但是,您可能希望将参数存储在实例变量中,并且您可能希望添加一个返回该实例变量的方法(“getter”)。
答案 1 :(得分:0)
构造函数没有返回类型。为什么?因为他们存在的目的是初始化属性。
也许您正在寻找的是一种吸气方法:
public String getPerson(String name) {
return name;
}
但是如果你想要它作为构造函数,初始化一个属性,首先声明它,然后将构造函数的参数赋给它:
public class Person {
private String name;
public String Person(String pName) {
this.name = pName;
}
...
}
答案 2 :(得分:0)
public String Person(String)不是有效的构造函数,因为构造函数没有返回类型。实际上,根据编译器,您的代码中没有参数化构造函数,但您尝试调用一个
答案 3 :(得分:0)
构造函数不返回任何内容。他们可以参数,但他们不返回任何东西。 必须是这样的:
private String name;
public Person(String name) {
this.name = name; }
public String getName(){
return this.name; }
public static void main(String[] args) {
Person one = new Person("hendry");
String name = one.getName();
}