JAVA中的对象初始化选项

时间:2019-02-14 02:15:25

标签: java initialization

我正在学习JAVA,而且学到的越多,我就越会意识到自己不知道的知识。我无法详细了解对象初始化。 (为简单起见,我没有粘贴整个代码)。先感谢您。

我有一个创建GUI的GUI类,并且有一个名为Calculator的驱动程序类,其中包含Main()方法。我的程序运行良好,我只想详细了解对象初始化,因为我有点困惑。

public class GUI {

    GUI() {

    }

    public static void Init() {

    // Code for creating GUI and elements   

    }

}
public class Calculator {

    public static void main(String args[]) {

        GUI main = new GUI(); // Option 1
        new GUI; // Option 2 
        GUI.Init(); //Option 3
    }

}

所以我的问题是,如果我有一个带有无参数构造函数的类或带有数据的构造函数,那么运行程序的最佳方法是什么?最佳做法是什么?我应该使用哪种方法?

我的理解是:

GUI main = new GUI(); // This will initiate the object, but will not execute

new GUI; // This will initiate and execute my program and run

GUI.Init(); // This will run the method of GUI, therefore can be used to run the program if built that way.

2 个答案:

答案 0 :(得分:0)

标准的事情是让init(小写的适当样式)不是静态方法,而是按以下方式运行:

GUI main = new GUI();
main.init();

创建对象,然后调用其方法。这允许进行真正的面向对象的编程。在此范例中,仅驱动程序应该是静态的,然后它应该创建所需的对象并使用它们。

否则,您只会得到一堆调用其他静态方法的静态方法,这违背了面向对象编程的目的。

答案 1 :(得分:0)

这里采用的方法完全取决于您的要求。如果确实不需要对象来调用函数(即:如果不需要为任何变量设置值),则option3将是一个不错的选择。

以下帖子可以帮助您进一步了解这些概念。 https://stackoverflow.com/a/2671636/6761121

https://www.baeldung.com/java-initialization