● 클래스(Class), 인스턴스(Instance) & 초기화(init)
Swift에는 객체지향 & 함수지향 특징이 있다고 한다. 그 중에서 객체 지향에서 '객체' 요 친구 어렵지 않은 개념일텐데 참 어렵게 느껴진다.
지금까지 공부하면서, 코딩해보면서 항상 헷갈리는 인스턴스. 그리고 그것과 연관 된 init까지. 매번 같은 걸로 몇 개월째 헤매고 있다.
내가 보기엔 그냥 클래스나 인스턴스나 같은 거 같은데, 다르다. 매우 다르단다.
설명도 정말 많이 들었다.
클래스(Class)는 설계도, 청사진, 붕어빵틀, 돈 찍어 내는 도장, 자동차 만드는 설계도, 인체해부도 등이라면,
인스턴스(Instance)는 저 클래스에 적혀 있는 대로 만들어낸 '실제', '쓸 수 있는 무언가' 그러니까 설계도 및 청사진 대로 만든 어떤것, 붕어빵틀로 찍어낸 진짜 붕어빵, 진짜 찍어낸 돈, 실제 바퀴가 창문이 핸들 등 설계도에 적힌대로 만든 자동차, 눈이 코가 입이 클래스에 적혀 있는대로 만들어낸 사람. 이라고 할 수 있다.
그리고 저 인스턴스를 만들어 내는 건 init 즉, 초기화.
클래스가 하드(HDD)에 있다면 실제로 컴퓨터에서 쓰기 위해서는 메모리로 올려야 하는데, 저 작업이 인스턴스화 하는 거고, 그걸 해주는게 init이라고.
이해하기 보단 그냥 외움...
★ 클래스와 인스턴스의 차이
★ 객체지향이 왜 나오게 됐는지, 클래스 뭥미? 인스턴스는? 객체는 무엇에 대한 차근차근한 설명
(Swift가 아니라 자바로 설명 되어 있긴 하지만, 이고잉님이 어째서 객체지향이 생겼고, 객체가 무엇인지 찬찬히 설명.)
★ 강의 총 서머리된 편
+ 12월 12일 추가
● 클래스(Class), 인스턴스(Instance), 객체(Object)
이렇게 공부하고도 아직도 헷갈 헷갈려 하고 있다. 이번엔 다른 자료를 찾아봤다. 좀 더 간결하고 이해하기 쉬운 설명 인것 같다.
객체(Object)는 소프트웨어 세계에 구현할 대상. 이를 구현하기 위한 설계도가 클래스(Class). 이 설계도를 따라 소프트웨어 세계에 구현 된 실체가 인스턴스(Instance)
|
참고 블로그: http://cerulean85.tistory.com/149
● 객체 지향 프로그래밍이란
'Coding' 카테고리의 다른 글
Swift View 생명주기(lifecycle): View의 탄생에서 View Out!까지 (feat. Obama out)ㅋㅋ (0) | 2017.12.13 |
---|---|
JSON (0) | 2017.12.09 |
Swift 프로토콜(Protocol) (0) | 2017.12.06 |
Swift 오토레이아웃(Autolayout) (0) | 2017.12.03 |
Swift 옵셔널(Optional) (0) | 2017.12.01 |