[Swift] 07. 구조체와 클래스

·2023년 1월 28일
1

Swift 문법

목록 보기
6/8
post-thumbnail

구조체와 클래스

구조체와 클래스는 데이터를 용도에 맞게 묶어 표현하고자 할 때 용이하다.
구조체와 클래스는 *프로퍼티와 메서드를 사용하여 구조화된 데이터와 기능을 가질 수 있다. 하나의 새로운 사용자정의 데이터 타입을 만들어 주는 것이다.
(프로퍼티는 구조체 안에 들어가는 인스턴스)

다만, 구조체의 인스턴스는 값 타입이고, 클래스의 인스턴스는 참조 타입이라는 것이 이 둘을 구분하는 가장 큰 차이점!



구조체

구조체는 아래와 같은 형식으로 만들어줄 수 있다.

struct 구조체이름 {
 	프로퍼티와 메서드
 }

참고로 구조체 이름은 대문자로 시작한다.


아래 예시를 살펴보자.

위와 같이 선언한 구조체는 다음과 같이 사용 가능하다.


타입 프로퍼티와 메서드는 다음과 같이 사용 가능하다.


아래 예시를 살펴보자.



클래스

클래스는 다음과 같이 명명 가능하다.

class 이름 {
		구현부
}

클래스도 구조체와 마찬가지로 프로퍼티와 메서드를 가질 수 있다.

차이점은 두 가지의 타입 메서드가 있다는 점이다.
나중에 상속 받을 때, 재정의가 불가한 메서드와 재정의가 가능한 메서드가 있다.

클래스 인스턴스 생성과 초기화도 구조체와 다를바 없지만, 한 가지 차이점이 있다.
바로 클래스의 인스턴스를 let으로 선언해도 내부 프로퍼티 값을 변경할 수 있다는 점이다.

var hwi: Person = Person()
hwi.height = 123.4
hwi.weight = 123.4

let ge: Person = Person()
ge.height = 123.4
ge.weight = 123.4

0개의 댓글