두번이나 쓰는 내용...그만큼 OOP(객체지향 프로그래밍)에선 중요한 내용..처음이자 끝..
클래스: 예전에도 써놨지만 설계도..
인스턴스: 실제 제품..
설계도인 클래스가 실체를 가진 인스턴스가 되었을 때 그것을 '객체'라 부름.
아..그래서 누군가는 객체=인스턴스 라고 하는거였군..
근데 위와 같이 이해하려니까 도저히 안 와 닿음..제품..제품..다 똑같은 외형을 가진 제품...
공장에서 찍어내는 제품을 떠올리니 독립적인걸 추구하는 객체지향의 내용을 이해하기 쉽지 않음.
그래서 사람에 비유하기로 결정!
이건 나만의 개인적인 생각.
아기(클래스가 왜 아기냐? 아기는 어릴때는 구분이 안간다. 다 똑같이 생김)한테 먹는법, 옷 입는 법, 신발 끈 매는 법 등
여러가지를 가르침(객체화). 이런식으로 '부모가 아이가 온전한 한명의 독립된 성인이 될 수 있게 가르치는 것을
객체화 한다' 라고 생각하기로 함. 그래서 결국 한명의 독립적이고 개별적인 성인이 된 것을 인스턴스.
여기에 위의 객체에 대한 정의를 덧붙이면.... 아이가 온전한 독립적인 성인이 된 것 = 객체
사람은 모두 다 다르니까 공장에서 외형이 똑같은 제품으로 인스턴스를 표현하는것보단 낫다고 생각함.
여기서 더 나아가서 일반인에게 객체지향을 설명하고자 한다면..비슷비슷하게 생긴 아이들을
각각 개별적이고 독립적인 한명의 성인으로 만들자!!!=객체 지향
(((this는 클래스를 통해서 만들어진 인스턴스 자기 자신을 가리킨다.)))