public class Test{
public static void main (String args[]){
P1 m1 = new P1();
m1.P1();//这句为什么不可以?构造方法不可以被调用吗?
}
}
class P1{
int n=9;
int nn;
P1(){
System.out.println("P1"); }
void P2(){
System.out.println("P2");
}
}

解决方案 »

  1.   

    构造方法是用来构造对象的的new对象时又java 虚拟机调用,不用我们显示调用
      

  2.   


    楼主不必过分纠结于这个问题。你可以换个角度来思考这个问题。在java中,如果你想创建一个对象(非基本数据类型)。必须在利用new 关键字在堆中申请空间,然后调用构造方法初始化对象,然后返回这个对象的引用。例如 new people()因为,java为了保证对象都被初始化。才采用了这种机制。所以不需要你人为来调用。而且,因为构造方法是只有在对象创建时才可以调用的。因为JVM自己调用完了。所以也不允许你自己来调用。
      

  3.   

    构造函数是再你new一个对象的时候就已经加载了、
    不能调用