Возможный дубликат:
Статические поля в нулевой ссылке в Java
Я понимаю, что статические методы находятся на уровне класса. Поэтому я знаю, что мне не нужно создавать экземпляр для вызова статических методов. Но я также знаю, что я могу вызвать статический метод LIKE методом экземпляра. Здесь я запутался, потому что ожидал NullPointerException
, вызывая статический метод из нулевого объекта (как в методе вызова экземпляра). Я бы очень признателен за некоторые объяснения, почему я был не в порядке ожидать здесь NullPointerException
.
Вот пример кода:
public class SampleClass {
public static int getSumStatic(int x, int y){
return x+y;
}
public int getDifferenceInstance(int x, int y){
return x-y;
}
}
public class TestClass {
public static void main (String[] args){
SampleClass sc=null;
System.out.println(SampleClass.getSumStatic(2, 2)); //as expected
//I was expecting NullPointerException in the next line, since I am accessing null object
System.out.println(sc.getSumStatic(4,5)); //static method , executes perfectly
System.out.println(sc.getDifferenceInstance(6,4));//throws NullPointerException
}
}