# 클래스와 객체
# 클래스가 무앗인가?
# 클래스를 비유할 때 흔히 사용하는 방법이다.

# 클래수는 과자 틀과 비슷하다
# class란 결국 똑같은 무엇인가를 계속해서 만들어낼 수 있는 설계 도면(과자 틀)이고
# 객체(object)란 클래스로 만든 피조물(과자틀을 사용해 만든 과자)를 뜻한다.

# > 과자 틀 -> 클래스
# > 과자 틀을 이용해 만든 과자 -> 객체(object)

# 중요한 특징❗
# 클래스로 만든 객체들끼리는 고유한 성질을 가진다.
# 서로 아무런 영향을 주지 않는다.

class Cookie:
    pass

# 위의 클래스는 가장 간단한 예이며 아무 기능이 없는 class이다.
# 하지만 이 클래스도 객체를 생성하는 기능이 존재한다.

a = Cookie()
b = Cookie()

print(a)
print(b)

# Cookie()의 결괏값을 돌려받은 a와 b가 바로 객체이다. 함수를 이용해 그 결괏값을 돌려받는 모습과 동일

# 객체와 인스턴스의 차이
# 클래스로 만든 객체를 인스턴스라고도 한다.
# a = Cookie()의 예시를 생각해보자.
# a는 객채이고 a 객채는 Cookie의 인스턴스이다.
# 인스턴스라는 말은 특정 객체(a)가 어떤 클래스(Cookie)의 객체인지 관계 위주로 설명할 때 사용한다.
# 'a는 인스턴스'라기 보단 'a는 객체'라는 표현에 어울리고,
# 'a는 Cookie의 객체'보다는 'a는 Cookie의 인스턴스'라는 표현이 어울린다.