고양이 문제
- Cat 클래스를 만들어, 인스턴스를 생성하고 이름, 색을 초기화하여 고양이의 상태를 출력하는 프로그램을 작성하시오.
문제 분석
- 이름과 색을 초기화 : 상태 - 이름, 색
- 생성자 직접 생성 필요
- 이름과 색을 각각 반환하는 메서드 생성 필요
코드 작성
package ex04;
class Cat {
private String name;
private String color;
public Cat(String name, String color) {
// this > heap 공간 내부의 객체 참조
this.name = name;
this.color = color;
}
public String getName() {
return name;
}
public String getColor() {
return color;
}
}
public class CatTest {
public static void main(String[] args) {
// main stack > Cat stack
// 상위 stack에 있는 변수는 하위 stack에서 참조 가능
Cat cat1 = new Cat("Tom", "Blue");
System.out.println("고양이 이름 : " + cat1.getName());
System.out.println("고양이 색깔 : " + cat1.getColor());
}
}
결과

내용 정리
- 생성자를 만들 때, 클래스 내부의 참조 변수와 매개 변수를 구분하기 위해 this 사용
- this를 사용하지 않으면 매개 변수를 참조 변수와 구분할 수 있도록 이름 변경 필요
- 생성자를 만들어서 매개 변수를 넣으면, 매개 변수는 Cat stack에 저장됨
- stack은 종료되면 데이터가 사라지므로 초기화함으로써 heap 공간에 저장
Share article