[객사오]객체와 타입

1. 개요

객체지향에서의 객체와 타입은 전통적인 데이터 타입과 연관이 있습니다. 객체는 일종의 데이터처럼 사용되며, 그 행동에 따라 변할 수 있는 상태를 가집니다. 두 가지 중요한 조언을 통해 객체지향 설계의 핵심 원칙을 이해할 수 있습니다.

2. 객체와 데이터

  • 객체는 데이터인가?
    • 객체는 데이터처럼 사용되지만 실제로는 데이터가 아닙니다.
  • 객체의 중요성
    • 객체에서 중요한 것은 상태가 아닌 행동입니다.
    • 상태는 행동의 부수효과로 표현됩니다.

3. 타입의 분류와 중요성

  • 객체의 타입 분류
    • 객체가 수행하는 행동에 따라 타입이 결정됩니다.
  • 내부 표현의 은닉
    • 객체의 내부적인 표현은 외부로부터 감춰져야 하며, 효과적인 행동 수행만 중요합니다.

4. 객체지향 설계의 원칙

  • 행동 중심
    • 객체가 이웃하는 객체와 협력하기 위해 어떤 행동을 해야 할지 결정하는 것이 중요합니다.
  • 책임의 중요성
    • 객체가 협력을 위해 어떤 책임을 지녀야 하는지 결정하는 것이 객체지향 설계의 핵심입니다.

5. 사용예시 (자바 코드)

객체의 타입과 행동을 표현하는 간단한 예시를 보여드리겠습니다.

class Animal {
    void sound() {
        System.out.println("동물의 소리");
    }
}

class Dog extends Animal {
    void sound() {
        System.out.println("멍멍!");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal();
        Animal dog = new Dog();

        animal.sound(); // 출력: 동물의 소리
        dog.sound();    // 출력: 멍멍!
    }
}

위 코드에서 AnimalDog 클래스는 동일한 행동 sound()을 수행하므로 동일한 타입으로 분류될 수 있으며, 내부 표현은 외부로부터 감춰져 있습니다.


Uploaded by N2T