Order
```java=
class 김동욱 {
String name;
Long price;
String color;
Long quantity;
public double calculateItemTotal() {
return this.quantity * this.price ;
}
담배를 사온다() {
GS 편의점을 간다()
담배를 산다()
재헌이를 만난다()
술한잔한다()
인생네컷을 찍는다()
담배를 준다()
return 담배
}
}
class 박준형 {
Long id;
List<Item> items;
public void addItem() {
}
public void removeItem() {
}
public calculateTotal() {
items.calculateItemToal();
}
담배를 핀다() {
val 담배 = 동욱.담배를 사온다()
담배를 입에 넣는다()
}
}
class Person {
Order order;
order.additem();
order.removeItem();
order();
}
''''''
- 객체란?
클래스에서 정의한 설계도를 바탕으로 생성된 실체를 의미 한다.
상태와 행위를 함께 가지며 스스로 자기 자신을 책임진다.
객체는 행위를 구현하기 위해 메시지를 통해 다른 객체와 협력한다.
- 클래스란?
객체의 상태와 행위를 정의하는 틀, 객체를 생성하기 위한 변수와 메소드로 구성되어 있다.
단지 동적인 객체들의 특성(상태)과 행위를 정적인 텍스트로 표현하기 위해 사용할 수 있는 도구이다~
클래스를 먼저 정의하는 것이 아니라 객체들의 속성와 행위를 식별하는 것이 먼저다. 클래스는 객체의 상태와 행위를 담는 틀일 뿐이다.
속성=특성=상태
- 객체지향이란 무엇인가?
정적인 클래스들의 집합이 아니라 메시지를 주고 받는 동적인 객체들의 집합이다~
### 1. 코드 이해와 관리가 쉬워진다
응집도가 높다
### 2. 변화에 유연하게 대처하고 확장하기 좋다
정해진 메시지만 주고 받으면 상호작용 가능
낮은 결합도
카테고리 없음