본문 바로가기
개발

TIL: 클래스와 객체

by kks950115 2023. 12. 6.
728x90

클래스와 객체의 관계에 대해 설명할 때 붕어빵과 붕어빵틀이라는 예시를 자주 듣는다. 정말 와닿는 비유이다. 누가 처음 생각한지는 모르겠지만 좋은 비유라고 생각한다. 

다만... 개념은 알겠는데 막상 '이제 만들어봐~' 하면 뭐부터 해야할지 난감하다.

 

class 는 설계도같은거다. 가령 카페 주문 시스템을 만든다고 생각해보자. 과일주스, 에이드,커피,차,과자,케익 등 다양한 마실 것들을 팔 것이다. 이 모든 것들을 담을 수 있는 클래스를 만들려고 한다.

 하나 예를 들면 커피는 음료수이면서 커피에는 디카페인 옵션도 있고 얼음을 추가할 수도 있다. 하지만 커피에는 과당이 들어가지 않는다. 탄산수도 들어가지 않는다.  

이런 경우라면 어떻게 클래스를 만들어야할까? 

 우선 공통점과 차이점을  구분해보자.

공통점 마실 것, 이름, 가격
차이점 디카페인,얼음&핫 옵션

 

 

정리하면 표처럼 뽑을 수 있다. 더 자세하게 들어간다면 많이 뽑아낼 수 있겠지만 개념을 복습하기 위한 글이니 짧게 쓰겠다.

 

공통점은 음료수라는 카테고리 안에 들어가는 상품이라면 모두 있을 것이다. 이건 음료수 클래스로 만들어서 자식한테 상속해줄 것이다.

 

차이점은 커피만 갖고 있는 특징이다. 음료수 클래스를 상속받는 커피클래스를 만들고 속성이나 메소드로 커피만 갖는 특징을 만들면된다.

 

만약 주스클래스를 만든다면 음료수 클래스를 상속받고 음료수에만 있는 무과당 속성이나 메소드를 만들면 된다. 

에이드클래스를 만든다면 음료수 클래스를 상속, 에이드에만 있는 탄산 속성에 관련된 걸 만들면 되는 것이다.

728x90
반응형

댓글