# 클래스 스코프(scope) #### 필드의 활동 영역? 필드의 활동 영역은 클래스 전체입니다. 따라서, 메소드 호출 시 필드를 사용할 수 있습니다. ``` class Dog { String name; int age; void bark() { // 필드 name을 사용 System.out.println(name + "의 멍멍!"); } } ``` #### 클래스 스코프 이러한 변수의 활동영역을 스코프(scope)라 합니다. 따라서 필드의 활동영역은 "클래스 스코프"가 됩니다. ## 문제 주어진 코드의 두 고양이 객체는, 각각 meow() 메소드를 아래와 같이 동작한다. ``` cat1.meow(); // [네로]의 야옹~ cat2.meow(); // [나비]의 야옹~ ``` 하지만 claw() 메소드의 경우, 어느 고양이가 할퀴었는지 구분할 수 없는 상황이다. ``` cat1.claw(); // 할퀴기! 샥샥~ cat2.claw(); // 할퀴기! 샥샥~ ``` 이를 구분키 위해 claw() 메소드를 수정하고, 출력 예와 같은 결과를 얻으시오. ## 출력 예 ``` [네로]의 야옹~ [나비]의 야옹~ [네로]의 할퀴기! 샥샥~ [나비]의 할퀴기! 샥샥~ ```
관련 강의로 이동

코드: java 1.8

public class CatTest3 { public static void main(String[] args) { // 두 고양이 객체 생성 Cat cat1 = new Cat(); Cat cat2 = new Cat(); // 객체 필드 초기화 cat1.name = "네로"; cat2.name = "나비"; // 두 고양이의 야옹~ cat1.meow(); cat2.meow(); // 두 고양이의 할퀴기! cat1.claw(); cat2.claw(); } } /* 고양이 클래스 */ class Cat { /* 필드(상태) 영역 */ String name; // 이름 String breeds; // 품종 int age; // 나이 /* 메소드(동작) 영역 */ void meow() { System.out.printf("[%s]의 야옹~\n", name); } void claw() { /* 1. claw 메소드를 완성하시오. */ System.out.println("할퀴기! 샥샥~"); } }

입력

정답이 궁금하다면? 코드를 제출해보세요!