# 멤버 변수 호출시 에러
```
class Dog{
 String name;  
 int age;	
 void setName(String n){ name=n; }
 void setAge(int a){ age=a; }	
}
class A{
  public static void main(String[] args){
    Dog dog1=new Dog();	
    dog1.setName("망치");	
    dog1.setAge(4);		
    // dog1.name;  
    // dog1.age;
  }
}
```
문제가 주석 처리한 부분에서 납니다...  그런데 이걸 System.out.println(dog1.name); System.out.println(dog1.age); 
이러면 그냥 문제 없이 출력이 되는데
제가 궁금한건 출력이 아니라.. 그냥 멤버변수를 호출하는  것만 적으면 왜 에러가 날까요..??
      
      
      
      
    sehongpark님의 답변
        ## 질문 코드
  + http://cloudstudying.kr/codes/1565
## 실행 결과
```
/root/var/tmp/2018_09_26_04_14_50_19da8bdb/Main.java:7: error: not a statement
    dog1.name;  
        ^
/root/var/tmp/2018_09_26_04_14_50_19da8bdb/Main.java:8: error: not a statement
    dog1.age;
        ^
2 errors
```
      
      
      
      
    sehongpark님의 답변
        ## 간단 정리
의미 없는 코드이므로 컴파일시 에러를 발생시킵니다.
## not a statement `doc1.age`
닷연산자(`.`)를 사용하면 반드시 statmenet 형식이 와야 합니다.
변수는 statmemet가 아닌 identifier 입니다.
## 참고 구글 키워드
  + 프로그래밍 언어론 statement
  + 자바 identifier
  + BNF, EBNF