2013-10-21 5 views
0
import View.UI; 
public class App { 
UI m;  
public static void main(String [] args){ 
    System.out.println("Hello"); 
    UI n ; 
    n.menu(); 
}} 

하는 UI 클래스가보기에, 가져 오기가 완료되고 초기화하지만 마지막 표정에서 나는 오류 The local variable n may not have been initialized 사자 아 자바에서 선발을 얻고 난하지 않습니다되지 않았을 수 있습니다 왜 내가 이런 식으로 사용할 수 없는지.지역 변수 N은

+0

http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.5 – Jayan

+0

오류는 실제로 자체적으로 설명되었습니다. 지역 변수 n은 초기화되지 않았습니다. 예, 당신은 그 라인에서 그것을 선언했습니다; 그러나 당신은 그것을 "초기화"하지 않았다. 당신이 그것을 사용하기 전에 무엇과 동등한 지 말하지 않았다는 것을 의미합니다. – Shobit

답변

1

java의 메소드 안에 변수/객체를 선언하려면 초기화해야합니다. 귀하의 경우에는

가장 간단한 용어에서

,

는 당신이

UI n = new UI(); 

당신에게 NULL 포인터 예외를 줄 것처럼 초기화하지 않으면 있도록하는 방법을 액세스하는 객체.

희망이 있습니다.

1
public static void main(String [] args){ 
    System.out.println("Hello"); 
    UI n =AssignUIOBjectHere ; 
    n.menu(); 
}} 

메서드의 로컬 variables은 사용하기 전에 초기화해야합니다.

컴파일러는 아직 초기화되지 않은 변수를 사용하고 있다고 불평합니다. 그 값을 사용하기 전에

으로 language specification

당 프로그램의 모든 변수는 값이 있어야합니다 :

1

을 그대로, 당신은 아무것도를 할당하지도 n.menu()를 호출하는 것은 NullPointerException의 원인이됩니다 그것.

UI n = new ... 또는 UI n = someObject과 같이해야합니다.

1

다음과 같이 UI 인스턴스를 만들어야합니다. UI n = 새 UI();