在java中初始化一个对象

时间:2010-12-27 06:41:46

标签: java

这是我们初始化对象的正确方法吗?

我有一个班级Sample 我想在Sample1类中初始化Object 在初始化之后,我不需要使用Sample Class的对象。

在那种情况下如果我不打算在Sample1类中的任何地方使用s,我可以将该对象初始化为new Sample();而不是Sample s = new Sample();

我的问题是,这是一个很好的做法吗? 会不会有任何影响

4 个答案:

答案 0 :(得分:1)

如果你不需要它为什么要初始化它?

答案 1 :(得分:1)

我经常遇到你在我的应用程序的主要方法中描述的困境;我想初始化应用程序类,但之后不需要引用它,例如:

public class MyApplication {

    public MyApplication() {
        // Initialize and run application
    }

    public static void main(String[] args) {
        new MyApplication();
    }
}

有些人认为这是代码味道。但是,为了保持无用的引用而添加局部变量或字段似乎也是错误的。对你的问题的简短回答:没有负面的副作用,设计是否糟糕还有争议。

这方面的一种方式是对你的构造函数更加纯粹。有人可能会认为构造函数应仅用于初始化,而不是用于启动应用程序。然后你可以将这些问题分开如下:

public class MyApplication {

    public MyApplication() {
        // Initialize application
    }

    public void run() {
        // Run application
    }

    public static void main(String[] args) {
        MyApplication app = new MyApplication();
        app.run();
    }
}

您可以将此视为有效的设计决策,同时也解决了您未引用的实例问题!

答案 2 :(得分:0)

你可以这样做,但除非你将Sample singleton设为样本,否则每次为它创建一个对象时都会初始化它。我不确定这是否是您想要的,因为您没有指定您正在初始化的内容。可能有更好的替代方式。指定您正在初始化的内容或您的要求,以便人们可以提供更具体的答案。

答案 3 :(得分:0)

是的,没关系。如果你没有任何状态(实例变量),你可以使用静态方法来完成你的构造函数正在做的事情。你只需要做SampleClass.myMethod()