作用
定义在类中用于初始化一个的对象,并返回对象的地址
格式
修饰符 类名(形参列表){
...
}
//new后面的Car()就是构造器
Car c = new Car();
public class Car{
public Car{
//无参构造器
public Car(){
...
}
}
public Car(double price,String name){
//有参构造器
public Car(){
...
}
}
}
构造区的分类和作用
- 无参构造器:初始化对象时,成员表变量采用默认值
- 有参构造器:初始化对象时,同时可以接收参数为对象赋值
例
//Goods类
package test2;
public class Goods {
String name;
double price;
public Goods() {
System.out.println("无参构造器被调用");
}
public Goods(String n,double p) {
System.out.println("有参构造器被调用");
name = n;
price = p;
}
}
//Main
package test2;
public class Main {
public static void main(String[] args) {
Goods c = new Goods();//调用无参构造器
System.out.println(c.name);
System.out.println(c.price);
Goods a = new Goods("西瓜",200);//调用有参构造器
System.out.println(a.name);
System.out.println(a.price);
}
}
注意事项
- 任何类被定义出来都自带无参构造器,写不写都有
- 一旦写了有参构造器,无参构造器就没有了,如果还需要无参构造器需要另外写
- 不能只有有参构造器,加入有参构造器后必须写无参构造器