我想了解'staticNumbers'方法标题中'static'这个词的作用是什么?:
public class DisplayClass {
/**
* @param args
*/
public static void main(String[] args) {
writeNumbers();
}
public static void writeNumbers()
{
int count;
for(count=1; count<=20; count++)
{
System.out.println(count);
}
}
}
答案 0 :(得分:20)
术语static
表示该方法在类级别可用,因此不需要在调用对象之前对其进行实例化。
因为writeNumbers
是从一个本身static
的方法调用的,所以它只能调用其他静态方法,除非它首先使用以下内容实例化DisplayClass
的新对象: p>
DisplayClass displayClass = new DisplayClass();
只有在实例化此对象后才能调用非静态方法,例如:
displayClass.nonStaticMethod();
答案 1 :(得分:2)
来自Oracle Java Tutorial逐字:
Java编程语言支持静态方法和静态变量。静态方法在其声明中具有静态修饰符,应该使用类名调用,而无需创建类的实例...
它不需要实例化一个类来使用有问题的方法。你给那个方法提供了适当的参数,它会返回一些合适的东西。
答案 2 :(得分:2)
为了澄清Crollster的答案,我想指出两件事。
首先:
按类级别,这意味着您可以通过在问题中的示例中键入“DisplayClass.writeNumbers()”来访问它,而无需使用“new DisplayClass();”。
第二
从类级别来看,它还意味着代码库不会复制到任何实例,因此您可以获得更小的内存占用。
答案 3 :(得分:1)
静态元素属于类而不是Object。
所以static method属于类,可以直接访问,如下所示。
public class MyClass{
public static void display(){
}
..
..
}
.
.
..
MyClass.display();
答案 4 :(得分:0)
Static告诉编译器该方法与声明它的类的任何实例成员都没有关联。也就是说,该方法与类相关联,而不是与类的实例相关联。