当你实例化一个对象时
比如有class A
产生A的类的一个对象用
A a = new A();
这个过程调用了构造函数,使用的是默认构造函数
当用
A a = new A(“参数列”);使用的就是符合参数列的构造函数
注意,如果没有自己写构造函数,编译时会自动生成默认构造函数
如果自己有写构造函数,编译时不会自动生成默认构造函数

解决方案 »

  1.   

    比如我的类里有5个量。
    public class Aprivate a;
    private b;
    private c;}
    这里有3个量,那么在构造函数里可不可以只定义2个量??
      

  2.   

    数据成员不要在构造函数里定义,构造函数可以帮你做一些初始化的动作
    比如你的a b c 都没有初始化,比如是AA类型的,如果是基础类型的都有默认值,比如整形的是0等,但是非基础类型的都是null,构造函数不但可以初始化一些成员,还可以执行一些别的动作
    public class A{private AA a;
    private AA b;
    private AA c;
    A(){
        a = new AA();
        //.....
    }}
      

  3.   

    用概念讲有点抽象,在编程过程中自然会feel到的.
      

  4.   

    public class Light{
    Light(String ln,int lw,int ls){
    ltName=ln;
    ltWatt=lw;
    ltStatus=ls;
    }

    Light(String ln,int lw){
    ltName=ln;
    ltWatt=lw;
    ltStatus=0;
    }
    class Run{
    public static void main(String args[]){
    Light ln=new Light("Philips",40);
    }
    }
    2个构造函数,看你怎么创造对象就调用其中一个
      

  5.   

    上面不全,看这个
    //这里是构造函数,构造对象赋值的方法
    public class Light{
             //构造函数1
    Light(String ln,int lw,int ls){
    ltName=ln;
    ltWatt=lw;
    ltStatus=ls;
    }
             //构造函数2
    Light(String ln,int lw){
    ltName=ln;
    ltWatt=lw;
    ltStatus=0;
    }
             protected String ltName;
    protected int ltWatt;
    protected int ltStatus;
    }
    class Run{
    public static void main(String args[]){
    Light ln=new Light("Philips",40);//调用第二个构造函数
    }
    }