小弟是菜鸟,初学,请大虾们指教,谢谢! jdk 1.5public class Person{
String name = "123";
int age = 0;
public void Person(String myName){
name = myName;
}
public void Person(String myName,int myAge){
name = myName;
age = myAge;
}
public void Person(){
this.name = "Cai";
this.age = 20;
}
public void printPerson(){
System.out.println("Name: " + name + "; Age: " + (char)age + ".");
}

public static void main(String[] args){
String myName = "";
int myAge = 0;
Person a = new Person("a",30);  //编译不过,为什么?
a.printPerson();
Person b = new Person("b");  //编译不过,为什么?
                b.printPerson();
Person c = new Person();     
c.printPerson();            //将上两句编译不过的地方注掉以后,该句输出为 Name:123; Age:  .根本就没有调用public void Person(),是为什么呢?
}
}

解决方案 »

  1.   

    构造器怎么会有返回类型呢?你把void都去掉再试试
      

  2.   

    谢谢,去掉void 确实管用,小弟还想深问一下,void 不就是没有返回吗, 另外,我也见到有些书就这样
    定义构造函数的: public void Hello(){};编译时也没有出错阿,为什么呢? 
      

  3.   

    我记得构造方法定义就是访问限制符public加类名,中间不加返回类型
      

  4.   


    你这个 public void Hello(){} 带返回类型就是一个单独的方法了,与构造器无关,当然可以编译通过的
      

  5.   

    void就是没有返回类型,不用问为什么的,就像int,我们不需要问为什么整型要用int.因为语言是那样定义的,没有返回的用void
      

  6.   

    void也是返回类型 lz要仔细呢
      

  7.   

    这是语法的问题。
    问sun吧