2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[Swift-TIL] 클래스 - 주소값으로 객체를 만들어보기 (이론편)

2024. 10. 16. 01:40ㆍIOS/Swift-TIL
SMALL

클래스를 하기 앞서서 구조체를 알아야 하니,

구조체 이론편과 실습편을 학습을 하고 오길 바란다.

 

구조체와 비교를 해보면서 시작해보겠다.

구조체

이건 구조체의 생김새다.

그렇다면, 클래스는 어떻게 생겼을까?

클래스

음... 거의 유사하다..

단순히 "struct"가 "class"로 바뀐모습이다.

솔직히 너무 똑같아서 당황했다..

그러면 뭐가 대체 어떻게 다른건가?

 

가장 많이 비교 되는게

"값 vs 주소"
"엑셀 vs 웹 스프레드시트"

 

이렇게 비교가 된다고 한다.

음... 아주 유사하지만, 다르다..

용도는 같다..

 

그러면 뭐가 다른걸까?

엑셀과 스프레드시트가 뭐가 다른지 알면된다.

 

"만약, A라는 사람이 B에게 파일을 보내었고,

B가 그파일을 수정하면 A에 파일은 수정이 되는가?"

위 질문의 답은 안된다가 맞다.

 

그것이 바로 "Call by Value" 값의 전달이다.

A는 값을 전달했고, B는 값을 전달 받아 수정을 했으니,

A가 만든 파일과는 무관한 상태인 것을 이야기한다.

이게 구조체이다.

 

반면, 웹 스프레드 시트에 경우는

같은 주소값을 바라보고 있다.

쉽게 말해서 A가 만든 파일을 B에게 주면,

B가 마구 수정하면 A에 파일도

수정이 되어버리는거다.

이게 클래스다.

 

이렇게 값과 주소값의 차이와

엑셀과 스프레드시트의 차이와

구조체와 클래스의 차이를 설명한다.

클래스 정리

 

사실 구조체와 별반 다를게 없기 때문에

클래스로 무언갈 만들기 보다는,

클래스와 구조체가 어떻게 다르게 동작하는지만,

알아보는 실습편으로 넘어가도록 하자.

728x90