본문 바로가기

반응형

이번 글에서는 객체 내부 메서드에서 this 키워드를 이용해 필드를 가리키고,
메서드 간 호출을 통해 객체 동작을 연결하는 방법을 학습합니다.
또한 생성자를 통해 필드를 초기화하고, 이를 동작에 반영하는 구조를 실습합니다.


📦 클래스 코드 (Car.java)

package ch06.sec09;

public class Car {
	String model;
	int speed;

	Car(String model) {
		this.model = model;
	}

	void setSpeed(int speed) {
		this.speed = speed;
	}

	void run() {
		this.setSpeed(100);
		System.out.println(this.model + "가 달립니다. (시속 : " + speed + "km/h)");
	}
}

📌 실행 코드 (CarExample.java)

package ch06.sec09;

public class CarExample {
	public static void main(String[] args) {
		Car car = new Car("포르쉐");
		Car car2 = new Car("벤츠");

		car.run();
		car2.run();
	}
}

💬 코드 설명

  • Car(String model)
    → 생성자를 통해 자동차 모델명을 필드에 저장
  • setSpeed(int speed)
    → 자동차의 현재 속도를 설정하는 메서드
  • run()
    → setSpeed(100)을 호출해 시속 100km/h로 설정한 뒤, 모델명과 속도를 출력
    → this를 명시적으로 사용하여 현재 객체의 메서드나 필드에 접근
  • car.run(), car2.run()
    → 각각 다른 객체가 독립적으로 동작

💻 실행 결과

포르쉐가 달립니다. (시속 : 100km/h)
벤츠가 달립니다. (시속 : 100km/h)

📌 간단 정리

메서드 역할
Car(String model) 모델명 초기화
setSpeed(int) 속도 설정
run() 속도 설정 후 주행 메시지 출력

💡 포인트 정리

  • this는 현재 객체 자신의 필드나 메서드를 가리킨다
  • this.필드명, this.메서드() 형태로 명시적으로 호출 가능
  • 생성자를 통해 필드를 초기화하고, 초기화된 값을 객체 동작에 반영
  • 여러 객체(car, car2)가 서로 독립적으로 동작함 → 객체지향의 기본
댓글