至于我的理解:
当方法是静态时,它是
我从未在编译时或运行时发现任何其他静态行为。 有没有?
当方法是私有的时,它是
例如hugeCapacity()
类中的ArrayList
方法。
private static final int DEFAULT_CAPACITY = 10;
private static int hugeCapacity(int minCapacity) {
if (minCapacity < 0) // overflow
throw new OutOfMemoryError();
return (minCapacity > MAX_ARRAY_SIZE) ?
Integer.MAX_VALUE :
MAX_ARRAY_SIZE;
}
由于存在Java私有+静态方法。为什么需要他们。是否出于限制目的,限制在方法中访问非静态变量?
答案 0 :(得分:2)
好吧,如果您不想向外界公开方法并仅在内部使用 ,您可以将它们标记为 private 。这也适用于static
方法。一个例子:
public class Sample {
public static void main(String[] args) {
SomeTestClass.display1(); // compilation error
SomeTestClass.display2();
}
}
class SomeTestClass {
private static void display1() {
System.out.println("displaying 1..");
}
public static void display2() {
display1();
System.out.println("displaying 2..");
}
}
在上面的代码中,method1()
应该仅在类SomeTestClass
中使用。这会增加抽象。