본문 바로가기
Coding

Swift 클래스, 인스턴스, 객체... 매번 헷갈리는 너. OOP

by BlissBless 2017. 12. 8.

클래스(Class), 인스턴스(Instance) & 초기화(init)


Swift에는 객체지향 & 함수지향 특징이 있다고 한다. 그 중에서 객체 지향에서 '객체' 요 친구 어렵지 않은 개념일텐데 참 어렵게 느껴진다.


지금까지 공부하면서, 코딩해보면서 항상 헷갈리는 인스턴스. 그리고 그것과 연관 된 init까지. 매번 같은 걸로 몇 개월째 헤매고 있다.


내가 보기엔 그냥 클래스나 인스턴스나 같은 거 같은데, 다르다. 매우 다르단다.


설명도 정말 많이 들었다.

클래스(Class)는 설계도, 청사진, 붕어빵틀, 돈 찍어 내는 도장, 자동차 만드는 설계도, 인체해부도 등이라면,

인스턴스(Instance)는 저 클래스에 적혀 있는 대로 만들어낸 '실제', '쓸 수 있는 무언가' 그러니까 설계도 및 청사진 대로 만든 어떤것, 붕어빵틀로 찍어낸 진짜 붕어빵, 진짜 찍어낸 돈, 실제 바퀴가 창문이 핸들 등 설계도에 적힌대로 만든 자동차, 눈이 코가 입이 클래스에 적혀 있는대로 만들어낸 사람. 이라고 할 수 있다.

그리고 저 인스턴스를 만들어 내는 건 init 즉, 초기화.



클래스가 하드(HDD)에 있다면 실제로 컴퓨터에서 쓰기 위해서는 메모리로 올려야 하는데, 저 작업이 인스턴스화 하는 거고, 그걸 해주는게 init이라고.

이해하기 보단 그냥 외움...



★ 클래스와 인스턴스의 차이




★ 객체지향이 왜 나오게 됐는지, 클래스 뭥미? 인스턴스는? 객체는 무엇에 대한 차근차근한 설명

(Swift가 아니라 자바로 설명 되어 있긴 하지만, 이고잉님이 어째서 객체지향이 생겼고, 객체가 무엇인지 찬찬히 설명.)




★ 강의 총 서머리된 편




+ 12월 12일 추가

● 클래스(Class), 인스턴스(Instance), 객체(Object)

이렇게 공부하고도 아직도 헷갈 헷갈려 하고 있다. 이번엔 다른 자료를 찾아봤다. 좀 더 간결하고 이해하기 쉬운 설명 인것 같다.



객체(Object)는 소프트웨어 세계에 구현할 대상.

이를 구현하기 위한 설계도가 클래스(Class).

이 설계도를 따라 소프트웨어 세계에 구현 된 실체가 인스턴스(Instance)

 



참고 블로그: http://cerulean85.tistory.com/149



● 객체 지향 프로그래밍이란