# 클래스 스코프(scope) 이 문제에서 meow와 claw 메소드 출력할때 닷지연결안해도 출력되고 반대로 닷지연결하면 오류가 나는건 메인 메소드에서 이미 해당 메소드와 닷지연결해서그런건가요? #### CODE <a class='btn btn-default' href='/codes/94741'>Link</a> ``` public class CaTest3 { public static void main(String[] args) { Cat c1 = new Cat(); Cat c2 = new Cat(); c1.name = "네로"; c2.name = "나비"; c1.meow(); c2.meow(); c1.claw(); c2.claw(); } } class Cat { String name; String breeds; int age; void meow() { cSystem.out.printf("[%s]의 야옹~\n", c1.name); } void claw() { System.out.printf("[%s]의 할퀴기! 샥샥~\n", c1.name); } } ``` #### INPUT ``` ``` #### OUPUT ``` /root/var/tmp/2023_09_01_11_20_37_fbf139d6/CaTest3.java:25: error: cannot find symbol cSystem.out.printf("[%s]의 야옹~\n", c1.name); ^ symbol: variable c1 location: class Cat /root/var/tmp/2023_09_01_11_20_37_fbf139d6/CaTest3.java:25: error: package cSystem does not exist cSystem.out.printf("[%s]의 야옹~\n", c1.name); ^ /root/var/tmp/2023_09_01_11_20_37_fbf139d6/CaTest3.java:29: error: cannot find symbol System.out.printf("[%s]의 할퀴기! 샥샥~\n", c1.name); ^ symbol: variable c1 location: class Cat 3 errors ```
레퍼런스 변수 c1은 메인 메소드 스코프를 갖습니다 ``` public class CaTest3 { public static void main(String[] args) { Cat c1 = new Cat(); Cat c2 = new Cat(); c1.name = "네로"; c2.name = "나비"; c1.meow(); c2.meow(); c1.claw(); c2.claw(); } } ``` 따라서 Cat 클래스 내부에서 c1 변수는 보여지지 않습니다 다음과 같이 변경해보세요 ``` class Cat { String name; String breeds; int age; void meow() { System.out.printf("[%s]의 야옹~\n", name); } void claw() { System.out.printf("[%s]의 할퀴기! 샥샥~\n", name); } } ```