在我的类AccountService中,它是静态的AccountDao,这也是类,为什么我们需要声明为静态,我知道我们将使用它来访问
classname.staticfield访问类中的所有位置,但与其他类对象一起声明为static的用途是什么?提前致谢
public class AccountService {
private static AccountDao accountinfo;
public AccountService() {
accountinfo = new AccountDao();
} }
最佳答案
静态成员由类的所有实例共享。在您的示例中,所有AccountService
实例只能访问一个称为AccountDao
的accountinfo
实例。
我不知道为什么要在您的情况下执行此操作。更糟的是,每次创建新的AccountService
实例时,都会再次实例化accountinfo
。这意味着,一旦创建了accountinfo
的另一个实例,较旧的实例就无法引用AccountService
的原始对象。
通常,使用静态成员的原因有很多,例如逻辑(1:n关系),性能(所有对象共享一个资源)。不管是什么原因:要小心何时以及如何(重新)实例化一个静态成员,因为该类的所有对象可能希望在不同时间使用该成员。