본문 바로가기

(비정기) Dlbo's Post

객체지향 이야기 3. 클래스랑 객체가 뭐가 다른건데?

객체지향에 처음 입문하는 사람들에게 상당히 설명해주기 어려운 한가지.

-_-

클래스와 객체의 차이점입니다. -_-;;

----------------------------------------------------------------------------------------



으흠.

저 코드를 보면 클래스와 객체의 차이점을 볼 수 있습니다.

클래스는 "객체를 찍어내기 위한 틀"입니다 -_-!

수많은 객체지향 책들을 보면 참 난감하게 글들을 써놨습니다.

어떤 책은 "클래스는 곧 객체요, 클래스의 소통으로 이루어진게 객체지향형 프로그램이다."

또 어떤 책은 "클래스와 객체는 서로 다른 개념이며, 객체의 소통으로 프로그램이 구성된다."

또 어떤 책은 "클래스를 생성해 메모리에 상주시키고, 절차지향으로 조합하는게 객체지향이다."

또또 어떤건 "객체에 클래스를 포함 시킬 수 있고, 클래스에 객체를 넣어 프로그램을 만든다."

.........

뭔 개소링미 -_-?

객체지향 개념이 대두된지는 오래됐지만,

아직 객체지향이 이거다!! 하고 딱 집을만한 기준은 없습니다.

객체지향의 큰 틀인 "모듈간의 완전한 분리"만이 정확하게 정의되어 있지요.

그리하여 클래스와 객체의 차이점을 논하는건 어찌 보면 뻘-_-짓일지도 모릅니다.

하지만,

......

적어도 같은 저자가 쓴 책에서 클래스와 객체의 차이에 대해 다른 입장을 보인 책이 2권씩이나 있으면

좀 난감하지 않습니까?-_-?;;

잡설은 집어치우고,

일반적인 객체지향 프로그래밍에서는 클래스와 객체를 서로 다른 존재로 봅니다.

클래스는 객체를 분류하고, 기본형 FM을 생산하기 위한 하나의 틀이라고 봅니다.

객체는 클래스라는 틀을 통해 만들어낸 하나의 생산품이구요.

객체라는것도 상당히 추상적인 개념입니다만,

"클래스는 객체보다 더 추상적이고 존재하지 않는 형태에 대한 개념이다."라고 보시면 될 겁니다.

수많은 객체지향 책을 보면서 정리한 제 결론은 그냥 이렇습니다 -_-;

이렇게 생각해버리면 좀 더 편합니다.

클래스에 대한 변수를 선언하면, 그 변수가 객체가 되는 것이고,

고로 그냥 쌩 클래스로 뭔가를 하려 하면 컴파일러가 에러가 나니깐요.

이해하기 쉽지요?-_-?

---------------------------------------------------------------------------------------------

요즘 계속 잠을 제대로 못잤더니 시험기간이 다음주부터인데 몸이 아작났습니다 -_-;

작품전시회도 곧 있을텐데 API로 아날로그 시계나 하나 대충 해서 내던지 해야겠군요;

다들 몸조리 잘하시구요. 저처럼 끙끙대지 마세요~ -_-;