Java 中的静态方法调用是如何工作的?

aks*_*uri 5 java static static-methods

调用函数时testFunc(),我没有使用语法 Apples.testFunc()。但是代码运行成功。为何如此?

class Apples {

       public static void main(String args[] ) {
           testFunc();
       }   

       public static void testFunc() {
           System.out.println("Hello world!");
       }
    }
Run Code Online (Sandbox Code Playgroud)

Ani*_* B. 10

因为,静态方法在同一个类中。因此,您无需指定类名。

如果在不同的类中,则需要指定类名。

请记住: 非静态方法可以访问静态和非静态成员,而静态方法只能访问静态成员。

例如 :

调用不同类中存在的静态方法,您需要这样做:

import com.example.Test;

public class Apples {

   public static void main(String args[]) {
      Test.testFunc();
   }   
}
Run Code Online (Sandbox Code Playgroud)
package com.example;

public class Test {

   public static void testFunc() {
      System.out.println("Hello world!");
   }

}
Run Code Online (Sandbox Code Playgroud)