본문 바로가기

카테고리 없음

멘토 수업 (3회차)

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. 변화에 유연하게 대처하고 확장하기 좋다
정해진 메시지만 주고 받으면 상호작용 가능
낮은 결합도