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(); // 출력: 멍멍!
}
}
위 코드에서 Animal
과 Dog
클래스는 동일한 행동 sound()
을 수행하므로 동일한 타입으로 분류될 수 있으며, 내부 표현은 외부로부터 감춰져 있습니다.
Uploaded by N2T
'자바 > 객사오' 카테고리의 다른 글
[객사오]행동이 우선이다 (0) | 2023.08.16 |
---|---|
[객사오] 타입의 계층 - 트럼프 계층 (0) | 2023.08.16 |
[객사오] 일반화/특수화 관계 (0) | 2023.08.16 |
[객사오] 슈퍼타입과 서브타입 (0) | 2023.08.16 |
[객사오] 정적모델 - 타입의 목적 (0) | 2023.08.16 |