构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当实例化一个对象时,类都会自动调用构造方法。
构造方法的特点:
1.构造方法没有返回类型,也不能定义为void;
2.构造方法的名称要与本类的名称相同;
3.构造方法的主要作用是完成对象的初始化工作,它能把定义对象的参数传给对象成员。
在构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,相应的成员变量也将被初始化。如果类中没有明确定义构造方法,则编译器会自动创建一个不带参数的默认构造方法。
除此之外,在类中定义构造方法时,还可以为其添加一个或多个参数,即有参构造方法。
如果在类中定义的构造方法都是有参构造方法,则编译器不会为类自动生成一个默认的无参构造方法,当试图调用无参构造方法实例化一个对象时,编译器会报错。
案例1:
智能手机的默认语言为英文,但制造手机时可以将默认语言设置为中文。编写手机类,无参构造方法使用默认语言设计,利用有参构造方法修改手机的默认语言。
package zhtestdemo;
public class demo { //创建手机类,类名叫demo
/**/
private String language;
public demo(String language) { //有参数构造方法
this.language=language;
}
public void out() {
System.out.print("修改后的手机默认语言为:"+language);
}
public static void main(String[] args) {
demo phone=new demo("中文");
phone.out();
}
}
案例2:
张三去KFC买可乐,商家默认不加冰,但是张三可以要求加3个冰块,请利用有参构造方法实现上述功能。
package zhtestdemo;
public class demo { //创建类,类名叫demo
/*。*/
private int ice; // 定义私有的int类型变量ice;
public demo(int ice) { //有参数构造方法
this.ice=ice;
}
public void out() {
System.out.print("张三购买的可乐里可以加:"+ice+"个冰块");
}
public static void main(String[] args) {
demo phone=new demo(3); //调用有参数构造方法,并输入参数3;
phone.out();
}
}