1. 클래스와 타입의 구분
1.1. 타입과 클래스의 차이
- 타입
- 객체를 분류하기 위해 사용하는 개념으로,
객체가 수행하는 행동
을 기준으로 합니다.
- 객체를 분류하기 위해 사용하는 개념으로,
- 클래스
타입을 구현할 수 있는 구현 메커니즘
이며, 정적인 모델로 프로그래밍 언어에서 제공됩니다.
1.2. 클래스와 타입의 혼동
- 대부분의 객체지향 프로그래밍 언어는 클래스를 기반으로 하므로, 클래스와 타입을 동일한 것으로 오해하는 경우가 많습니다.
클래스와 타입은 다른 개념입니다!
- 이러한 혼동은 설계를 덜 유연하게 만들 수 있으며, 오해와 혼란을 불러일으킬 수 있습니다.
2. 중요성
2.1. 객체지향의 중심
- 객체지향에서 중요한 것은 동적으로 변하는 객체의 '
상태
'와 상태를 변경하는 '행위
'입니다.
클래스는
단순히 타입을 구현하는 한 가지 방법일 뿐
이며, 재사용이나 다른 용도로도 사용될 수 있습니다.
2.2. 설계의 유연성
- 클래스와 타입을 정확히 구분하는 것은 설계를 유연하게 유지하는 기반을 마련합니다.
3. 결론
- 클래스와 타입은 동일한 개념이 아닙니다.
타입은 객체의 분류와 행동을 기준
으로 하며,클래스는 이를 구현하는 구현 메커니즘
입니다.
- 클래스와 타입을 정확히 이해하고 구분하는 것은 효과적인 객체지향 설계의 핵심입니다.
class Car {
String brand;
int speed;
void accelerate() {
speed += 10;
}
}
- 위는 클래스의 개념이며 단순한 설계도
- 타입을 구현할 수 있는 구현 메커니즘의 일종입니다.
- 정적인 모델!
Car myCar = new Car(); // 'Car'는 타입이며, 'myCar'는 Car 클래스의 인스턴스를 참조하는 변수입니다.
- 위의 Car 는 타입으로서, 데이터의 형식입니다.
Uploaded by N2T
'자바 > 객사오' 카테고리의 다른 글
[객사오] 그래서 결국 타입은 추상화다. (0) | 2023.08.16 |
---|---|
[객사오] 동적모델, 정적모델 (0) | 2023.08.16 |
[객사오] 협력 - 요청하고 응답하며 협력하는 사람들 (0) | 2023.08.16 |
[객사오] 재판 속의 협력 (0) | 2023.08.16 |
[객사오] 책임 - 책임의 분류 (0) | 2023.08.16 |