在什么情况下我的 Java 类应该有一个构造函数(而不是依赖默认构造函数)?

我现在想知道:当我需要传递参数和/或需要构造函数内的附加功能时,我是否需要创建自己的构造函数?是否还有其他情况依赖默认构造函数会出现问题?


    private MenuIterator() {

        menuIterator = menu.iterator();

        calculateNumMenuItems();

    }


慕村9548890
浏览 134回答 3
3回答

扬帆大鱼

当您需要为类执行某种设置并且字段初始化还不够时,您就需要一个构造函数。您描述的构造函数没有任何意义,因为您的构造函数无法获取menu(并且private修饰符阻止您new MenuIterator()以通常的方式调用)。

侃侃无极

本质上,如果您提供任何构造函数(甚至是无参数构造函数),将不再为您提供默认构造函数。如果您需要执行除调用类的超类构造函数之外的任何操作,则需要提供自己的构造函数。

慕慕森

如果您需要构造函数不是公共的,您还需要一个显式构造函数。如果您希望类的客户端通过静态工厂方法获取实例而不是直接使用构造函数,则属于这种情况。单例模式只是用于获取实例的静态方法的多种用途之一。我不会太担心。尽管您的讲师有一个带有构造函数的良好解决方案,但您很可能也有一个没有构造函数的良好解决方案。编程问题总是可以通过不止一种方法来解决。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java