我试图理解静态方法,我已经达成了一个令人困惑的问题.
仅关注此问题的方法,如果我创建了我的对象的实例(其中类本身不是静态的),那么我通常只能访问public,protected和/或内部方法(取决于范围/封装).换句话说,我无法访问私有方法.
我已经读过,虽然最小的静态方法比非静态方法稍微有效.
因此,在创建返回类型为void的私有方法时,并在从内部创建对象的引用时排除,为什么不将它设置为静态?我见过的所有代码都没有这样做,所以我只能假设我错过了这一点.
静态方法通常被认为是无状态的,因此无法访问实例状态.相反,实例方法是有状态的,因此可以读取和修改实例的状态.
无状态方法的典型示例是:
当然,静态方法并不总是无状态的,有静态有状态方法的样本.这个类有一个单一的状态:
这些实现需要稍微小心,因为类的状态也由进程内的所有线程共享.