类与本地实例化

时间:2016-10-03 16:46:53

标签: java class instantiation

当第一个不是强制性的时候(通常是我可以最终确定它们),在类和本地实例化方面是否存在差异?是否有"规则"我应该效仿?

我养成了使用类实例化来实例化其他类的习惯,而且我真的不知道这是不是很糟糕。

public class aService {
    private final SomeClass someClass = new SomeClass();

    public void someMethod() {
        someClass.doSomething();
    }
}

// or

public class aService {
    public void someMethod() {
        SomeClass someClass = new SomeClass();
        someThing.doSomething();
    }
}

3 个答案:

答案 0 :(得分:0)

如果仅在该方法中使用,我希望在给定方法中初始化someClass

如果要在所有方法(多个)中使用someClass并存储对象状态,请选择解决方案1.

当您想要优化时,第一种方法会更好,因为someClass只创建一次。另一方面,您可能永远不会致电someMethod()。在这种情况下,你会浪费内存。特别是如果你有很多这样的对象

答案 1 :(得分:0)

如果您描述的情况是一次性使用方法,为实现特定目的而实例化一次,之后其实例不再需要存在,那么我希望 这些选项 。两者都不必要地创建了一个实例。

相反,我宁愿专注于在SomeClass static中制作我关心的方法。主要原因是我可以保存不需要的对象实例化,并使API及其用法更加顺畅

答案 2 :(得分:0)

本身没有“规则”,但由于它与开发相关,因此该规则与良好的清洁开发人员代码指南相关... calss字段/变量应该在构造函数中初始化......这是构造函数的工作。

由于显而易见的原因,

常量可以在同一行声明和初始化......