티스토리 뷰

Swift

Swift) Struct & Class

Ekko0701 2023. 1. 2. 17:13

 

 

Struct와 Class는 프로그램 코드를 조직화하기 위해 일반적으로 사용한다. 객체 지향에 필수 요소이기도 하다.

 

구조체 ( Struct )

  • 대부분의 타입이 구조체이다
  • 타입을 정의하는 것이기 때문에 대문자 Camel-case를 사용한다.
  • Property와 Method로 나뉜다.
  • 값 타입
  • 구조체 변수를 새로운 변수에 할당할 때마다 새로운 구조체가 할당된다. 
    = 같은 구조체를 여러 개의 변수에 할당한 뒤 값을 변경시키더라도 다른 변수에 영향을 주지 않는다. (값 자체를 복사)

 

구조체 선언

간단한 구조체를 만들어 보았다.

구조체 안에는 Property(속성)와 Method(메서드)가 있다.

 

 

인스턴스 생성 및 프로퍼티 접근

점(dot) 문법을 통해 구조체 인스턴스의 프로퍼티에 접근할 수 있다.

 

 

타입 프로퍼티 및 메서드

static이 붙은 타입 프로퍼티와 타입 메서드는 SomeStruct라는 타입 자체에서 사용 가능한 프로퍼티와 메서드이다.

 

타입 프로퍼티와 타입 메서드는 인스턴스에서는 사용할 수 없다.


클래스

  • 참조 타입
  • ARC로 메모리를 관리
  • 같은 클래스 인스턴스를 여려 개의 변수에 할당한 뒤 값을 변경시키면 할당한 모든 변수에 영향을 준다. (메모리 복사)
  • deinit을 사용해 클래스 인스턴스의 메모리 할당을 해제한다.
  • 상속이 가능하지만, 다중 상속은 불가
  • 타입 이름은 Camel-case 사용

 

클래스 선언

기본적인 내용은 구조체와 동일하다.

다만 클래스는 참조 타입이기 때문에 가변 인스턴스도 프로퍼티 변경이 가능하다.

 

타입 메서드 static, class

class는 구조체와는 다르게 상속이 가능하다. static 메서드는 상속을 받았을때받았을 때 재정의가 불가하고 class 메서드는 상속을 받았을 때 재정의 (Override)가 가능하다.

 


구조체와 클래스의 기본 사용법에 대해 알아보았다. 다음 글에서 더 자세하게 알아보자.

'Swift' 카테고리의 다른 글

Swift) Enum 열거형  (1) 2023.01.02
[Swift] Dictionary  (0) 2022.08.05
[Swift] 기초 문법 1 - 입력, 분할, 배열, map(), filter(), reduce()  (0) 2022.07.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함