# 멤버 변수 호출시 에러 ``` 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); 이러면 그냥 문제 없이 출력이 되는데 제가 궁금한건 출력이 아니라.. 그냥 멤버변수를 호출하는 것만 적으면 왜 에러가 날까요..??
## 질문 코드 + 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 ```
## 간단 정리 의미 없는 코드이므로 컴파일시 에러를 발생시킵니다. ## not a statement `doc1.age` 닷연산자(`.`)를 사용하면 반드시 statmenet 형식이 와야 합니다. 변수는 statmemet가 아닌 identifier 입니다. ## 참고 구글 키워드 + 프로그래밍 언어론 statement + 자바 identifier + BNF, EBNF