类级别实例化与方法实例化之间的区别

Ani*_*rma 4 java variables class

以下变量用法之间的区别是什么

public class A{

    B b= new B();

    public void doSomething()
    {
        b.callme();
    }
}
Run Code Online (Sandbox Code Playgroud)

VS

public class A { 
    B b;
    public void doSomething() {
        b=new B(); 
        b.callme();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我们在一个班级中只有一个“ b”,那么哪个是更好的做法以及为什么。在什么情况下应该使用谁。

Jef*_*rey 5

这些实际上有非常不同的含义。在情况1中,在构造b时分配对象A。它只能被构造一次(除非您从班级外部的某个地方重新分配它)。

在情况2中,您将A'sb每次调用该方法时重新分配实例。