# 멤버 변수 호출시 에러
```
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