아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
기민한진도개272
기민한진도개27219.03.17

기초적인 질문인데 정말 모르겠어서 질문 올려봅니다..

class Me1
{
int var = 100;
public void setVar(int var){
this.var = var;
}
System.out.println(var); /* MeEx1.java:7: <identifier> expected 이런 오류가 뜨는데 왜 그런건지 이해가 안가네요 */
}

class MeEx1 extends Me1
{
public void setVar(int var){
this.var = var;
}

public static void main(String[] args)
{
MeEx1 me1 = new MeEx1();
me1.setVar(1000);
}
해결 좀 해주세요 암만 생각해도 이상없는거 같은데 왜 오류가 뜨는건지 ㅜㅜ

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • class Me1 { int var = 100; public void setVar(int var) { this.var = var; } System.out.println(var); }

    여기 System.out.println(var);가 실행되게 하려면 그 문장을 static 블럭에 넣어야 합니다.

    class Me1 { int var = 100; public void setVar(int var) { this.var = var; } static { System.out.println(var); } }

    그런데 이렇게 하면 var가 static 변수가 아니라서 또 오류가 발생합니다.

    class Me1 { static int var = 100; public void setVar(int var) { this.var = var; } static { System.out.println(var); } }

    var를 static으로 바꾸면 실행은 되는데... 이걸 의도하신 게 맞는지 모르겠네요

    혹~시 객체가 생성될 때 실행되는 걸 원하신다면

    class Me1 { int var = 100; public Me1() { System.out.println(var); } public void setVar(int var) { this.var = var; } }

    생성자를 사용하시면 됩니다!