首页 > 编程笔记 > Java笔记 阅读:10

Java类的构造方法(新手必看)

在 Java 类中,除成员方法外,还存在一种特殊类型的方法,那就是构造方法。

构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。

构造方法的特点如下:
注意,在定义构造方法时,构造方法没有返回值,但这与普通没有返回值的方法不同,普通没有返回值的方法使用 public void methodEx() 这种形式进行定义,但构造方法并不需要使用 void 关键字进行修饰。

构造方法的定义语法格式如下:
public 构造方法名(){
    ...
}
在构造方法中可以为成员变量赋值,这样当实例化一个本类对象时,相应的成员变量也将被初始化。如果类中没有明确定义构造方法,编译器会自动创建一个不带参数的默认构造方法。

注意,如果在类中定义的构造方法都不是无参的构造方法,那么编译器也不会为类设置一个默认的无参构造方法,当试图调用无参构造方法实例化一个对象时,编译器会报错。因此,只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。

在 Java 类中,this关键字除了可以调用类的成员变量和成员方法,事实上 this 还可以调用类中的构造方法。

【实例】“构造”鸡蛋灌饼。当顾客购买鸡蛋灌饼时:如果要求加两个蛋,店家就给饼加两个蛋;不要求时,店家会默认给饼加一个蛋。创建鸡蛋灌饼类(EggCake 类),使用 this 关键字,在无参构造方法中调用有参构造方法,实现上述加蛋过程。

代码如下:
public class EggCake {
    int eggCount; // 鸡蛋灌饼里蛋的个数

    public EggCake(int eggCount) { // 参数为鸡蛋灌饼里蛋的个数的构造方法
        this.eggCount = eggCount; // 将参数 eggCount 的值赋予属性 eggCount
    }

    public EggCake() { // 无参数构造方法,默认给饼加一个蛋
        // 调用参数为鸡蛋灌饼里蛋的个数的构造方法,并设置鸡蛋灌饼里蛋的个数为 1
        this(1);
    }

    public static void main(String[] args) {
        EggCake cake1 = new EggCake();
        System.out.println("顾客不要求加蛋的数量,饼里会有" + cake1.eggCount + "个蛋。");
        EggCake cake2 = new EggCake(2);
        System.out.println("顾客要求加 2 个蛋,饼里会有" + cake2.eggCount + "个蛋。");
    }
}
运行结果如下:

顾客不要求加蛋的数量,饼里会有1个蛋。
顾客要求加2个蛋,饼里会有2个蛋。

相关文章