有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java方法头中“静态”的含义是什么?

我想了解“static”一词在“WriteEnumbers”方法头中的作用:

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);
        }
    }
}

共 (5) 个答案

  1. # 1 楼答案

    Static告诉编译器该方法不与声明它的类的任何实例成员相关联。也就是说,方法与类相关联,而不是与类的实例相关联

  2. # 2 楼答案

    术语static表示该方法在类级别可用,因此不需要在调用对象之前对其进行实例化

    因为writeNumbers是从一个本身为static的方法调用的,所以它只能调用其他静态方法,除非它首先使用以下方法实例化DisplayClass的新对象:

    DisplayClass displayClass = new DisplayClass();
    

    只有实例化此对象后才能调用非静态方法,例如:

    displayClass.nonStaticMethod();
    
  3. # 3 楼答案

    静态元素属于类而不是对象

    所以static method属于可以直接访问的类,如下所示

    public class MyClass{
    public static void display(){
    }
    ..
    ..
    }
    .
    .
    ..
    MyClass.display();
    
  4. # 4 楼答案

    为了澄清克罗斯特的答案,我想指出两件事

    第一:

    就类级别而言,这意味着您可以根据问题中的示例键入“DisplayClass.writeNumbers()”,而无需使用“newdisplayclass();”来访问它

    第二:

    按类级别,这还意味着代码库不会复制到任何实例,因此您会收到更小的内存占用

  5. # 5 楼答案

    Oracle Java Tutorial逐字记录:

    The Java programming language supports static methods as well as static variables. Static methods, which have the static modifier in their declarations, should be invoked with the class name, without the need for creating an instance of the class...

    当然,您不必实例化类就可以使用所讨论的方法。您将为该方法提供适当的参数,它将返回一些适当的内容