当你实例化一个对象时
比如有class A
产生A的类的一个对象用
A a = new A();
这个过程调用了构造函数,使用的是默认构造函数
当用
A a = new A(“参数列”);使用的就是符合参数列的构造函数
注意,如果没有自己写构造函数,编译时会自动生成默认构造函数
如果自己有写构造函数,编译时不会自动生成默认构造函数
比如有class A
产生A的类的一个对象用
A a = new A();
这个过程调用了构造函数,使用的是默认构造函数
当用
A a = new A(“参数列”);使用的就是符合参数列的构造函数
注意,如果没有自己写构造函数,编译时会自动生成默认构造函数
如果自己有写构造函数,编译时不会自动生成默认构造函数
public class Aprivate a;
private b;
private c;}
这里有3个量,那么在构造函数里可不可以只定义2个量??
比如你的a b c 都没有初始化,比如是AA类型的,如果是基础类型的都有默认值,比如整形的是0等,但是非基础类型的都是null,构造函数不但可以初始化一些成员,还可以执行一些别的动作
public class A{private AA a;
private AA b;
private AA c;
A(){
a = new AA();
//.....
}}
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个构造函数,看你怎么创造对象就调用其中一个
//这里是构造函数,构造对象赋值的方法
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);//调用第二个构造函数
}
}