新手问:难道构造函数就不能用void修饰吗?

Drowning 2004-08-23 06:59:39
class Person
{
public String name;
public int age;
public void Person(String name,int age)
{
this.name=name;
this.age=age;
}
}
class testPerson
{
public static void main(String[]args)
{
Person st1 = new Person("zhangsan",22);

}
}

编译出错:
l2.java:15: cannot resolve symbol
symbol : constructor Person (java.lang.String,int)
location: class Person
Person st1 = new Person("zhangsan",22);
^
1 error

构造函数去掉void就通过了,为什么?
...全文
696 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbdx 2004-08-23
  • 打赏
  • 举报
回复
构造是不能有返回类型的,什么都没有
han10 2004-08-23
  • 打赏
  • 举报
回复
构造函数也叫构建器,在一个创建对象时候被调用,由于是用于初始化对象的工作,所以没有返回类型的,也没有这个必要.它虽然没有返回,但能带参数列表.
jabby12 2004-08-23
  • 打赏
  • 举报
回复
构造函数不能有返回类型,如果有返回类型的话就变成了一个普通的方法,但在JAVA又规定在类中不能有方法与类名相同,除了构造函数必须是之外,可以把构造函数看成是类的一些附带信息,如你去面试,你就是一个类,就要带简历,这个简历就是构造函数,面试官通过这个简历来认识你,而类中就通过构造函数来创建类.
fishstudio 2004-08-23
  • 打赏
  • 举报
回复
要是函数名和类名相同,系统能识别为构造函数么?

是不是应该不会覆盖构造函数,如果你的方法签名不同的话!

如果都是 <class name>();那么看来是不行了。只要是方法签名相同,就会覆盖。

注:方法签名就是方法名和参数的总称。
xuejunnpu 2004-08-23
  • 打赏
  • 举报
回复
构造函数没有返回值,所以不能有任何的类型修饰
hnxkz 2004-08-23
  • 打赏
  • 举报
回复
构造函数不能有任何类型修饰,包括void。
Drowning 2004-08-23
  • 打赏
  • 举报
回复
不是啊,我换成testpk1.java编译就没有问题
我引用包没有问题的
draco2002 2004-08-23
  • 打赏
  • 举报
回复
不是文件名不能为testpk.java吧,是你放的位置不对吧!!

你如果在testpk.java文件中增加了package testpk语句,则相应的你必须有testpk文件夹,并且testpk.java文件必须放在testpk文件夹下.
Drowning 2004-08-23
  • 打赏
  • 举报
回复
还发现了个问题
如果自己生成个包testpk
而import testpk.*;的时候的文件名不能为testpk.java
为什么?
taoxianxue 2004-08-23
  • 打赏
  • 举报
回复
学习~~~~~~~~~~~~
huangk 2004-08-23
  • 打赏
  • 举报
回复
不能void
疯癫行者 2004-08-23
  • 打赏
  • 举报
回复
很简单,构造方法的返回值是该类的对象,而不可能是void。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧