下面这段代码,为什么对p调用p.info();和p.info("ok");都可以,但是对p、p1、p2调用p.Person();p1.Person(0);和p2.Person(100,25);却不可以,急求解,谢谢!!!    public static void main(String[] args) {
Person p = new Person();
Person p1 = new Person(0);
Person p2 = new Person(100,25);

p.info();
p.info("ok");
p.Person();
p1.Person(0);
p2.Person(100,25);
}
}class Person { Person(){
id = 0;
age = 20;
  System.out.println("p : id - "+id +"age-: "+ age);
  } Person(int _id){
id = _id;
age = 23;
System.out.println("p1 : id - "+id +"age-: "+ age);
  } Person(int _id,int _age){
id = _id;
age = _age;
System.out.println("p2 : id - "+id +"age-: "+ age);
  }//成员变量定义
   private int id;
   private int age = 20;//方法定义
   public int getAge(){return age;}
   public void setAge(int i){age = i;}
   public int getId(){return id;}   void info() { 
System.out.println("my id is : " + id);
   }   void info(String t) {
System.out.println(t + " id " + id);
   }
}

解决方案 »

  1.   

    都是调用Person里面的方法,为什么info可以,而person的构造方法却不可以,求解啊,谢谢O(∩_∩)O
      

  2.   

    但是对p、p1、p2调用p.Person();p1.Person(0);和p2.Person(100,25);却不可以,急求解,谢谢!!!p.Person();p1.Person(0);和p2.Person(100,25);
    这几个是构造不是方法!
      

  3.   

    楼主,Person(),Person(int i),Person(int i,int j)是构造函数啊,它们用来创建对象的,有参的构造函数还用来初始化成员变量,是不能用对象再去调用的,所以会报错,info()和info(String t)是普通方法,所以你能这样调用(p.info())...
      

  4.   

        你这题的基本构造是,Person类中有三个构造器,还有两个方法。其实你要记住的是,构造器的作用仅仅是用来创建类的实例的,然后通过类的实例的引用,来调用方法。不可以说用类实例的应用来调用构造器。
      

  5.   

    不能调用构造方法<script type="text/javascript"><!--
    google_ad_client = "pub-4737646267478218";
    /* 728x90, 创建于 11-3-23 */
    google_ad_slot = "8990752451";
    google_ad_width = 728;
    google_ad_height = 90;
    //-->
    </script>
    <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    </script>
      

  6.   

    person()是构造方法。不能调用。。而是用来初始话对象的。。
      

  7.   

    Person()和类名相同,是构造方法,虽然参数可以不同。,构造方法不能在外面直接调用,
      

  8.   

    构造函数是创建实例化对象时自动调用的,不需要自己调用
    Person p = new Person();
    Person p1 = new Person(0);
    Person p2 = new Person(100,25);         //就已经调用相应的构造函数,打印出相应的信息
      

  9.   

    p.info();
    p.info("ok"); 
    p.Person();
    p1.Person(0);
    p2.Person(100,25);
    info()是Person里的方法,是可以进行外部调用的,
    但是Person()这个是一个类的构造方法,他是不能像方法一样被外部调用,只能是外部引用
    如System.out.println(new Person());
    这里就是引用了Person类中的Person()构造方法
      

  10.   

    构造方法是不能直接通过对象名.方法名调用的;只能通过new关键字调用;