java 构造函数 问题

来源:百度知道 编辑:UC知道 时间:2024/04/28 00:15:54
class people{
String name;
String email;
public String setname(String x){name=x;}
}

public class test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
people a=new people();
a.setname("abc");
System.out.print(a.name);
}
}

究竟哪错了,初学,望指教!
错误信息
java.lang.Error: 无法解析的编译问题:
此方法必须返回 String 类型的结果

at people.setname(test.java:4)
at test.main(test.java:19)
Exception in thread "main"
构造函数为什么不能写成这样呢?
public String setname(String x){this.name=x;}

public String setname(String x){name=x;}

改为
public void setname(String x){name=x;}
这个函数不用返回值。

这个不是构造函数。你这个程序构造函数是系统默认的 people()

构造函数 必须与类名相同 当没有编写构造函数时采用系统默认的构造函数,我们编写了构造函数时如你写的程序 当初始化对象时就必须按照构造函数的格式而不采用默认的构造函数 故会产生错误
你可以再写一个空的构造函数 public people(){}这样就不会报错
初学者 一般先别采用大型的IDE环境书写程序

把第4行中的public String setname...改为:
public void setname...
大哥你这哪是构造函数啊??
public people(){}才是构造函数
构造函数和类名是同名的

public String setname(String x)
{
name=x;
}

没有返回值~~