System.out이 println()을 호출하는 방법을 이해하려고합니다. 모든 검색 결과에 따르면 System.out은 PrintStream 클래스의 인스턴스이므로 해당 클래스의 메서드를 호출 할 수 있습니다.참조 변수를 통한 메소드 호출
하지만 ...
나는이 NullPointerException이 결과를 다음과 같이이를 복제하려고
.public class Main {
public static void main(String[] args){
Tasker.calc.add(1, 2);
}
}
class Tasker{
static Calc calc;
}
class Calc {
public void add(int x, int y){
System.out.println(x+y);
}
}
Tasker.calc와 비슷한 Calc 인스턴스가 아닌가요? System.out은 NullPointerException이 아닌 방법은 무엇입니까?
이것은 분명히 NullPointerException에 관한 질문이 아닙니다 ... System.out에 초기화가 필요없는 이유에 대한 질문입니다.
감사합니다.
당신은 결코'Tasker.calc'를 초기화하지 않았으므로이 예외가 발생했습니다. 시작하기 전에 훌륭한 Java 튜토리얼을 읽으십시오. 오라클의 길은 좋은 시작입니다. –
계산을 초기화하지 않았습니다 – Oswald
'calc' 변수를 초기화하지 않았습니다. 따라서 값은 'null'입니다. 반대로 Java 런타임은 자동으로'System '을 초기화합니다.out "을 null이 아닌 값으로 설정하십시오.) –