Java 使用null对象访问静态方法

Java 使用null对象访问静态方法,java,oop,Java,Oop,尽管从空对象rt访问方法dir,但下面的代码编译时没有任何错误,而我希望得到nullpointerexception为什么? 当我删除dir方法的static关键字时,我得到了空指针异常,那么静态方法是否有异常 public class root{ private root() {} final public static void dir(int a) { System.out.print("Output: "+a); } } public cl

尽管从空对象
rt
访问方法
dir
,但下面的代码编译时没有任何错误,而我希望得到
nullpointerexception
为什么?

当我删除dir方法的static关键字时,我得到了空指针异常,那么静态方法是否有异常

public class root{

  private root() {}

   final public static void dir(int a)
    {
      System.out.print("Output: "+a);
    }
  }

public class plan{

  public root rt=null;

  public void plot(){ 
       rt.dir(1); //Calling a static method using null object
    }

  public void static main(String[] args){
     plan p1=new plan();
     p1.plot();
 }
}

如果您希望调用另一个类的静态方法,则必须在调用静态方法时写入类名


您必须使用
root.dir(1)

如果希望调用另一个类的静态方法,则必须在调用静态方法时写入类名


您必须使用
root.dir(1)

如果希望调用另一个类的静态方法,则必须在调用静态方法时写入类名


您必须使用
root.dir(1)

如果希望调用另一个类的静态方法,则必须在调用静态方法时写入类名


您必须使用
root.dir(1)

静态方法不与对象链接。这些是类方法。当您调用
rt.dir(1)
时,JVM将其替换为
Root.dir(1)


实例可以为null,可以导致NPE,但类不能。这就是为什么在这里看不到任何
NullPointerException

静态方法不与对象链接。这些是类方法。当您调用
rt.dir(1)
时,JVM将其替换为
Root.dir(1)


实例可以为null,可以导致NPE,但类不能。这就是为什么在这里看不到任何
NullPointerException

静态方法不与对象链接。这些是类方法。当您调用
rt.dir(1)
时,JVM将其替换为
Root.dir(1)


实例可以为null,可以导致NPE,但类不能。这就是为什么在这里看不到任何
NullPointerException

静态方法不与对象链接。这些是类方法。当您调用
rt.dir(1)
时,JVM将其替换为
Root.dir(1)


实例可以为null,可以导致NPE,但类不能。这就是为什么在这里看不到任何
NullPointerException

首先,它不是
Public
它的
Public
静态方法不使用对象,因为它是静态的。它只是编译时已知的引用类型。首先,它不是
Public
its
Public
静态方法不使用对象,因为它是静态的。它只是编译时已知的引用类型。首先,它不是
Public
its
Public
静态方法不使用对象,因为它是静态的。它只是编译时已知的引用类型。首先,它不是
Public
its
Public
静态方法不使用对象,因为它是静态的。这就是编译时已知的引用类型。使用类名是一种很好的做法,但使用类名并不是强制性的。他可以使用一个类的实例来访问静态成员(检查他的问题)。使用ClassName是一种很好的做法,但使用ClassName不是强制性的。他可以使用一个类的实例来访问静态成员(检查他的问题)。使用ClassName是一种很好的做法,但使用ClassName不是强制性的。他可以使用一个类的实例来访问静态成员(检查他的问题)。使用ClassName是一种很好的做法,但使用ClassName不是强制性的。他可以使用类的实例访问静态成员(检查他的问题)