2014-09-08 2 views
-2

저는 자바 프로그래밍과 Stackoverflow를 처음 접했고 질문이있었습니다. 변수에 할당 된 텍스트를 표시하려고하는데 프로그램을 실행하려고 할 때 비 정적 변수를 정적 내용에서 참조 할 수 없다는 메시지가 표시됩니다. 내 코드는 다음과 같습니다.자바 프로그래밍 입문. 정적 인 내용에서 비 정적 변수를 참조하려고 시도합니다.

public class VariableTesting { 

    String firstName = "Tom"; //String first, last, 
    char middleInitial = 'B'; 
    String lastName = firstName; 

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

    public static void variable(){ 
     System.out.println(lastName + "," + firstName + "," + middleInitial); 
    } 
} 

감사합니다. 감사합니다

+0

오류 메시지 검색 : http://stackoverflow.com/questions/290884/what-is-the-reason-behind-non-static-method-cannot-be-referenced-from-a-static?lq= 1 – user2864740

+3

정적 컨텍스트에서 비 정적 변수를 참조 할 수 없기 때문입니다. –

+0

"인스턴스"변수는 클래스의 "인스턴스"와 연결됩니다. 즉, 'VariableTesting me = new VariableTesting();'을 수행하면 'me'는 클래스의 인스턴스에 대한 참조입니다. 그러면, 예를 들어'System.out.println (me.lastName); '과 같이 할 수 있습니다. –

답변

0

서로 다른 지향적 인 (정적 및 비 정적) 객체를 가질 수 없으므로 변수를 정적으로 만들거나 메서드를 비 정적으로 만들어야합니다.

2

firstName, middleInitiallastName은 인스턴스 변수입니다. 따라서 VariableTesting 클래스의 인스턴스에 대한 참조를 통해 수행되지 않는 한 정적 메서드에서 액세스 할 수 없습니다.

+2

글쎄, 기술적으로 당신은 정적 메서드에서 그들을 참조 할 수 있지만 그들을 한정하기 위해 인스턴스 변수가 있어야합니다. –

+0

@HotLicks 그건 사실이야. – Eran