intro) Swift는 객체지향언어이다.

Swift는 다중 패러다임 언이이며, 그 중에 객체지향 프로그래밍 패러다임도 갖추고 있다.

객체지향은 프로그램을 그저 데이터와 처리방법으로 나누는 것이 아닌, 프로그램을 다수의 '객체'로 만들어놓고, 객체들끼리 서로 상호작용을 통해서 하나의 프로그램을 만들어지는 방식이다.

쨌든, 구조체와 클래스는 OOP(Object-Oriented Programming)를 위한 필수 요소로 프로그램의 코드를 추상화하기 위해 사용한다. 여기서는 구조체와 클래스의 공통점을 설명하고 차이점은 앞으로 쭉쭉 설명해보겠습니다!

1. 클래스와 구조체의 공통점

초기화, 프로토콜, 확장..? 나도 아직 모른다. 이건 나중에 정리하면서 배워가면되고 가장 중요한 것은! 2,3,4번이 클래스와 구조체의 존재의 이유가 된다! (물론 히디 뇌피셜임 ㅇㅇ)

2. 클래스와 구조체의 활용 (공통범위)

그럼 이렇게 공통점이 많은 클래스와 구조체를 왜 두가지나 쓰나? 이건 다음 차트에서 배우고 여기서는 클래스와 구조체를 사용할때 공통적으로 비슷한 구문들을 정리하고 마무리하겠다. 초기화, 속성, 메소드 등 앞으로 배울게 넘쳐나니까 여기서는 간단히만 짚고 넘어가자구용!

i) 정의 구문

struct SoptAyomi {
    var part = "아요"
    var haveMapBook = true
}

class SoptAyomiPartMember {
    var soptAyomi = SoptAyomi()
    var age: Int?
    var name: String?
}

ii) 인스턴스 선언

클래스와 구조체 둘 다 선언만 하면 붕어빵 틀만 만든 것이다. 이제 이것을 활용해서 붕어빵을 만들어야 되는데 붕어빵이 바로 인스턴스이다!