public class MotoXCellPhone {

    //assume there's a speaker class
    private BlueToothSpeaker speaker;

    //why instantiate in constructor?

    MotoXCellPhone() {
        speaker = new BlueToothSpeaker();
    }

    //or if i instantiate in a method?
    public BlueToothSpeaker useSpeaker() {
        speaker = new BlueToothSpeaker();
        return speaker;
    }
}


我为什么要在另一个类的构造函数中实例化一个类?我还没有完全理解构图,所以我对所有事物的“为什么”都感到模糊

最佳答案

如果在方法中实例化它,则每次调用该方法时都会创建一个新的方法。如果那没有意义-如果您希望将一个BlueToothSpeaker对象在其整个生命周期内都绑定到MotoXCellPhone对象-那么您需要在构造函数中创建(或注入)它。

10-05 23:01