SlideShare a Scribd company logo
10. Swift 기초
- 열거형, 구조체, 클래스
창원대학교 정보통신공학과 박동규
2016. 1.
차례
• 열거형(enumeration)
• 구조체(struct)
• 클래스(class)
열거형
• 나열형이라고도 하며 관련있는 상수 목록 집합을 정의하
는 구문이다
• 예를들어 동,서,남,북과 같은 방위의 목록집합의 정의
하고 싶다
• 그러나 Swift의 기본자료형에서는 이러한 타입을 제공
하지 않는다
• 개발자가 목록집합을 정의하여 새로운 타입처럼 사용
한다
열거형(Enumerations)
• 변수가 가질 수 있는 가능한 값들을 나열해 놓은 타입
• 값의 종류가 일정한 범위로 정해 있을 때 쓰는 것이 편리
• 선언 - enum과 case를 사용하여 나열함
c언어와 차이점 - C언어는 디폴트로 멤버에 정수를 할당된다
그러나 Swift에서는 정수할당 여부를 선택할 수 있다
열거형
열거형(Enumerations)
· 예제_멤버값 설정
Universal Product Code - 상품식별을 위해 바코드에 쓰이는 기호
숫자 시스템 제조사 제품 번호 확인 숫자
열거형의 원시값
·원시값(Raw values) : 멤버가 가지는 이름에 데이터 값을 부여할 수 있
다. 주로 숫자를 할당하여 편리하게 이용할 수 있다.
. rawValue 속성을 이용해서 원시값을 읽어올 수 있다(읽기전용)
원시값의 자료형
열거형(Enumerations)
· 예제_원시값 설정과 rawValue
옵셔널 바인딩
원시값 읽음
원시값을 이용하여 멤버를
찾음 옵셔널 값 리턴
구조체(Structures)와 클래스(Class)
• 구조체(Structures) : 서로 다른 자료형의 변수들을 묶어 하나의 새로
운 자료형을 만들 수 있으며, 이 새로운 자료형을 구조체(struct)라고
한다
• 클래스(Class) : 클래스는 구조체와 같이 서로 다른 자료형의 속성과
메소드를 포함한다. 상속을 통해 자식 클래스에 자신의 속성과 메소
드를 물려줄 수 있다
• Swift에서는 나열형, 구조체와 클래스 모두 속성과 메소드를 가질 수
있다.
• Mac OS X을 위한 Cocoa 프레임워크등 개발용 프레임워크는 많은
클래스로 이루어져있다
용어정리
• C나 C++와 같은 프로그래밍 언어에서는 일반적으로 클
래스의 인스턴스를 객체(오브젝트)라고 한다.
• Swift는 다른 언어와 달리 클래스와 구조체의 기능이 유
사하다. 클래스와 구조체의 인스턴스 모두 메소드를 가질
수 있다.
• 이 때문에 Swift에서는 객체라는 용어보다 일반적인
인스턴스라는 용어를 사용한다
클래스와 구조체의 유사성
• 값을 저장할 속성을 정의한다
• 기능을 위한 메소드를 정의한다
• 멤버 속성의 설정과 검색을 위해서 메소드를 만들 수도 있으
나 subscript을 사용하여 인덱스로 값을 편리하게 설정하고
검색할 수 있다
• 초기상태를 설정하기 위한 init이라는 초기설정자를 제공한다
• 기본 구현내용을 확장하기 위한 기능을 제공한다(extension)
클래스와 구조체의 차이점
• 클래스는 구조체가 가지지 못한 다음 기능을 가진다
• 부모 클래스의 특성을 상속받는 기능이 가능하다
• 클래스 인스턴스를 형을 검사하고 반영하여 런타임시
에 형변환을 할 수 있다
• 할당된 임의의 리소스를 해지하는 deinitializer를 가진
다
• 클래스 인스턴스는 참조 카운터를 하나 이상 허용한다
구조체와 클래스
• 인스턴스(Instance) 선언
• 프로퍼티 접근(Property access) - 접근연산자(.)
· 예제_인스턴스 선언과 프로퍼티 접근
구조체와 클래스
구조체
클래스
구조체 인스턴스의 생성
클래스 예시
감사합니다
dongupak@gmail.com

More Related Content

What's hot

Data Structure 4
Data Structure 4Data Structure 4
Data Structure 4yonsei
 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1현찬 양
 
More effective c++ 항목30부터
More effective c++ 항목30부터More effective c++ 항목30부터
More effective c++ 항목30부터
Dong Chan Shin
 
C++ stl
C++ stlC++ stl
C++ stl
은아 정
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2현찬 양
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3현찬 양
 
Swift세미나(속성(properties), 메소드(method))
Swift세미나(속성(properties), 메소드(method))Swift세미나(속성(properties), 메소드(method))
Swift세미나(속성(properties), 메소드(method))
경원 정
 
파이썬 둘째날
파이썬 둘째날파이썬 둘째날
파이썬 둘째날
명준 김
 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2현찬 양
 
모어이펙티브 C++ 5,6
모어이펙티브 C++ 5,6모어이펙티브 C++ 5,6
모어이펙티브 C++ 5,6
quxn6
 
외계어 스터디 3/5 function and object
외계어 스터디 3/5   function and object외계어 스터디 3/5   function and object
외계어 스터디 3/5 function and object
민태 김
 
Scala self type inheritance
Scala self type inheritanceScala self type inheritance
Scala self type inheritance
Yong Joon Moon
 
[SwiftStudy 2016] 3장. 함수
[SwiftStudy 2016] 3장. 함수[SwiftStudy 2016] 3장. 함수
[SwiftStudy 2016] 3장. 함수
Keunhyun Oh
 
Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본
Dong Chan Shin
 
비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5
민태 김
 
[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1
Keunhyun Oh
 
Item 26. 제네릭 타입을 애용하자
Item 26. 제네릭 타입을 애용하자Item 26. 제네릭 타입을 애용하자
Item 26. 제네릭 타입을 애용하자Sungho Moon
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1현찬 양
 
자바스크립트 프로토타입 및 클래스
자바스크립트 프로토타입 및 클래스자바스크립트 프로토타입 및 클래스
자바스크립트 프로토타입 및 클래스
Lee Dong Wook
 
[새차원, 코틀린(Kotlin) 강좌] 9. Properties and Fields
 [새차원, 코틀린(Kotlin) 강좌] 9. Properties and Fields [새차원, 코틀린(Kotlin) 강좌] 9. Properties and Fields
[새차원, 코틀린(Kotlin) 강좌] 9. Properties and Fields
정연 최
 

What's hot (20)

Data Structure 4
Data Structure 4Data Structure 4
Data Structure 4
 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1
 
More effective c++ 항목30부터
More effective c++ 항목30부터More effective c++ 항목30부터
More effective c++ 항목30부터
 
C++ stl
C++ stlC++ stl
C++ stl
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3
 
Swift세미나(속성(properties), 메소드(method))
Swift세미나(속성(properties), 메소드(method))Swift세미나(속성(properties), 메소드(method))
Swift세미나(속성(properties), 메소드(method))
 
파이썬 둘째날
파이썬 둘째날파이썬 둘째날
파이썬 둘째날
 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2
 
모어이펙티브 C++ 5,6
모어이펙티브 C++ 5,6모어이펙티브 C++ 5,6
모어이펙티브 C++ 5,6
 
외계어 스터디 3/5 function and object
외계어 스터디 3/5   function and object외계어 스터디 3/5   function and object
외계어 스터디 3/5 function and object
 
Scala self type inheritance
Scala self type inheritanceScala self type inheritance
Scala self type inheritance
 
[SwiftStudy 2016] 3장. 함수
[SwiftStudy 2016] 3장. 함수[SwiftStudy 2016] 3장. 함수
[SwiftStudy 2016] 3장. 함수
 
Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본
 
비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5
 
[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1
 
Item 26. 제네릭 타입을 애용하자
Item 26. 제네릭 타입을 애용하자Item 26. 제네릭 타입을 애용하자
Item 26. 제네릭 타입을 애용하자
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1
 
자바스크립트 프로토타입 및 클래스
자바스크립트 프로토타입 및 클래스자바스크립트 프로토타입 및 클래스
자바스크립트 프로토타입 및 클래스
 
[새차원, 코틀린(Kotlin) 강좌] 9. Properties and Fields
 [새차원, 코틀린(Kotlin) 강좌] 9. Properties and Fields [새차원, 코틀린(Kotlin) 강좌] 9. Properties and Fields
[새차원, 코틀린(Kotlin) 강좌] 9. Properties and Fields
 

Similar to 10 swift 열거형구조체클래스

[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java
유리 하
 
C# 개요 및 소개 [ 유니티 및 C# 스터디 / 2024-04-19 ]
C# 개요 및 소개 [ 유니티 및 C# 스터디 / 2024-04-19 ]C# 개요 및 소개 [ 유니티 및 C# 스터디 / 2024-04-19 ]
C# 개요 및 소개 [ 유니티 및 C# 스터디 / 2024-04-19 ]
leusin2
 
Java collections framework
Java collections frameworkJava collections framework
Java collections framework
경주 전
 
Uml 세미나
Uml 세미나Uml 세미나
Uml 세미나
Daniel Shin
 
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
NAVER D2
 
Programming java day2
Programming java day2Programming java day2
Programming java day2Jaehoonyam
 
Apex Trigger를 위한 OOP 기초
Apex Trigger를 위한 OOP 기초Apex Trigger를 위한 OOP 기초
Apex Trigger를 위한 OOP 기초
JaewonLee153
 
객체지향 프로그래밍 기본
객체지향 프로그래밍 기본객체지향 프로그래밍 기본
객체지향 프로그래밍 기본
용호 최
 
C# 고급 문법 part 1
C# 고급 문법 part 1C# 고급 문법 part 1
C# 고급 문법 part 1
준영 박
 
Design patterns
Design patternsDesign patterns
Design patterns
Joshua Yoon
 
자바야 놀자 PPT
자바야 놀자 PPT자바야 놀자 PPT
자바야 놀자 PPT
JinKyoungHeo
 
[Swift] Class & Structure
[Swift] Class & Structure[Swift] Class & Structure
[Swift] Class & Structure
Bill Kim
 
Effective c++ 4
Effective c++ 4Effective c++ 4
Effective c++ 4현찬 양
 
The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표재정 이
 
애플이 스위프트 프로그래밍 언어를 위해 "훔친" 몇 가지 기능
애플이 스위프트 프로그래밍 언어를 위해 "훔친" 몇 가지 기능애플이 스위프트 프로그래밍 언어를 위해 "훔친" 몇 가지 기능
애플이 스위프트 프로그래밍 언어를 위해 "훔친" 몇 가지 기능
ETRIBE_STG
 
자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조
중선 곽
 
2014-15 Intermediate C++ Study #7
2014-15 Intermediate C++ Study #72014-15 Intermediate C++ Study #7
2014-15 Intermediate C++ Study #7
Chris Ohk
 
Chapter7~9 ppt
Chapter7~9 pptChapter7~9 ppt
Chapter7~9 ppt
Injae Lee
 
Java script
Java scriptJava script
Java script
영남 허
 
SwiftSeminar(Enumerations, Structures, Classes)
SwiftSeminar(Enumerations, Structures, Classes)SwiftSeminar(Enumerations, Structures, Classes)
SwiftSeminar(Enumerations, Structures, Classes)
SangGyu Kim
 

Similar to 10 swift 열거형구조체클래스 (20)

[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java
 
C# 개요 및 소개 [ 유니티 및 C# 스터디 / 2024-04-19 ]
C# 개요 및 소개 [ 유니티 및 C# 스터디 / 2024-04-19 ]C# 개요 및 소개 [ 유니티 및 C# 스터디 / 2024-04-19 ]
C# 개요 및 소개 [ 유니티 및 C# 스터디 / 2024-04-19 ]
 
Java collections framework
Java collections frameworkJava collections framework
Java collections framework
 
Uml 세미나
Uml 세미나Uml 세미나
Uml 세미나
 
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
 
Apex Trigger를 위한 OOP 기초
Apex Trigger를 위한 OOP 기초Apex Trigger를 위한 OOP 기초
Apex Trigger를 위한 OOP 기초
 
객체지향 프로그래밍 기본
객체지향 프로그래밍 기본객체지향 프로그래밍 기본
객체지향 프로그래밍 기본
 
C# 고급 문법 part 1
C# 고급 문법 part 1C# 고급 문법 part 1
C# 고급 문법 part 1
 
Design patterns
Design patternsDesign patterns
Design patterns
 
자바야 놀자 PPT
자바야 놀자 PPT자바야 놀자 PPT
자바야 놀자 PPT
 
[Swift] Class & Structure
[Swift] Class & Structure[Swift] Class & Structure
[Swift] Class & Structure
 
Effective c++ 4
Effective c++ 4Effective c++ 4
Effective c++ 4
 
The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표
 
애플이 스위프트 프로그래밍 언어를 위해 "훔친" 몇 가지 기능
애플이 스위프트 프로그래밍 언어를 위해 "훔친" 몇 가지 기능애플이 스위프트 프로그래밍 언어를 위해 "훔친" 몇 가지 기능
애플이 스위프트 프로그래밍 언어를 위해 "훔친" 몇 가지 기능
 
자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조
 
2014-15 Intermediate C++ Study #7
2014-15 Intermediate C++ Study #72014-15 Intermediate C++ Study #7
2014-15 Intermediate C++ Study #7
 
Chapter7~9 ppt
Chapter7~9 pptChapter7~9 ppt
Chapter7~9 ppt
 
Java script
Java scriptJava script
Java script
 
SwiftSeminar(Enumerations, Structures, Classes)
SwiftSeminar(Enumerations, Structures, Classes)SwiftSeminar(Enumerations, Structures, Classes)
SwiftSeminar(Enumerations, Structures, Classes)
 

More from Changwon National University

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf
Changwon National University
 
2011 app center Changwon National Univ.
2011 app center Changwon National Univ.2011 app center Changwon National Univ.
2011 app center Changwon National Univ.
Changwon National University
 
인공지능의 파도가 온다
인공지능의 파도가 온다인공지능의 파도가 온다
인공지능의 파도가 온다
Changwon National University
 
Mobile Healthcare Application
Mobile Healthcare ApplicationMobile Healthcare Application
Mobile Healthcare Application
Changwon National University
 
바다 즐기기
바다 즐기기바다 즐기기
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능
Changwon National University
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)
Changwon National University
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
Changwon National University
 
20 2 강의를 마치며
20 2 강의를 마치며20 2 강의를 마치며
20 2 강의를 마치며
Changwon National University
 
20 1 코딩스타일
20 1 코딩스타일20 1 코딩스타일
20 1 코딩스타일
Changwon National University
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
Changwon National University
 
18 1 파이썬패키지
18 1 파이썬패키지18 1 파이썬패키지
18 1 파이썬패키지
Changwon National University
 
17 2 필터함수와 맵함수
17 2 필터함수와 맵함수17 2 필터함수와 맵함수
17 2 필터함수와 맵함수
Changwon National University
 
17 1 람다함수
17 1 람다함수17 1 람다함수
17 1 람다함수
Changwon National University
 
16 1 상속과super()
16 1 상속과super()16 1 상속과super()
16 1 상속과super()
Changwon National University
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와self
Changwon National University
 
14 4 슬라이싱
14 4 슬라이싱14 4 슬라이싱
14 4 슬라이싱
Changwon National University
 
14 2 iterator
14 2 iterator14 2 iterator
14 3 리스트함수
14 3 리스트함수14 3 리스트함수
14 3 리스트함수
Changwon National University
 
14 1 리스트의 메소드
14 1 리스트의 메소드14 1 리스트의 메소드
14 1 리스트의 메소드
Changwon National University
 

More from Changwon National University (20)

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf
 
2011 app center Changwon National Univ.
2011 app center Changwon National Univ.2011 app center Changwon National Univ.
2011 app center Changwon National Univ.
 
인공지능의 파도가 온다
인공지능의 파도가 온다인공지능의 파도가 온다
인공지능의 파도가 온다
 
Mobile Healthcare Application
Mobile Healthcare ApplicationMobile Healthcare Application
Mobile Healthcare Application
 
바다 즐기기
바다 즐기기바다 즐기기
바다 즐기기
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
 
20 2 강의를 마치며
20 2 강의를 마치며20 2 강의를 마치며
20 2 강의를 마치며
 
20 1 코딩스타일
20 1 코딩스타일20 1 코딩스타일
20 1 코딩스타일
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
 
18 1 파이썬패키지
18 1 파이썬패키지18 1 파이썬패키지
18 1 파이썬패키지
 
17 2 필터함수와 맵함수
17 2 필터함수와 맵함수17 2 필터함수와 맵함수
17 2 필터함수와 맵함수
 
17 1 람다함수
17 1 람다함수17 1 람다함수
17 1 람다함수
 
16 1 상속과super()
16 1 상속과super()16 1 상속과super()
16 1 상속과super()
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와self
 
14 4 슬라이싱
14 4 슬라이싱14 4 슬라이싱
14 4 슬라이싱
 
14 2 iterator
14 2 iterator14 2 iterator
14 2 iterator
 
14 3 리스트함수
14 3 리스트함수14 3 리스트함수
14 3 리스트함수
 
14 1 리스트의 메소드
14 1 리스트의 메소드14 1 리스트의 메소드
14 1 리스트의 메소드
 

10 swift 열거형구조체클래스

  • 1. 10. Swift 기초 - 열거형, 구조체, 클래스 창원대학교 정보통신공학과 박동규 2016. 1.
  • 3. 열거형 • 나열형이라고도 하며 관련있는 상수 목록 집합을 정의하 는 구문이다 • 예를들어 동,서,남,북과 같은 방위의 목록집합의 정의 하고 싶다 • 그러나 Swift의 기본자료형에서는 이러한 타입을 제공 하지 않는다 • 개발자가 목록집합을 정의하여 새로운 타입처럼 사용 한다
  • 4. 열거형(Enumerations) • 변수가 가질 수 있는 가능한 값들을 나열해 놓은 타입 • 값의 종류가 일정한 범위로 정해 있을 때 쓰는 것이 편리 • 선언 - enum과 case를 사용하여 나열함 c언어와 차이점 - C언어는 디폴트로 멤버에 정수를 할당된다 그러나 Swift에서는 정수할당 여부를 선택할 수 있다
  • 6. 열거형(Enumerations) · 예제_멤버값 설정 Universal Product Code - 상품식별을 위해 바코드에 쓰이는 기호 숫자 시스템 제조사 제품 번호 확인 숫자
  • 7. 열거형의 원시값 ·원시값(Raw values) : 멤버가 가지는 이름에 데이터 값을 부여할 수 있 다. 주로 숫자를 할당하여 편리하게 이용할 수 있다. . rawValue 속성을 이용해서 원시값을 읽어올 수 있다(읽기전용) 원시값의 자료형
  • 8. 열거형(Enumerations) · 예제_원시값 설정과 rawValue 옵셔널 바인딩 원시값 읽음 원시값을 이용하여 멤버를 찾음 옵셔널 값 리턴
  • 9. 구조체(Structures)와 클래스(Class) • 구조체(Structures) : 서로 다른 자료형의 변수들을 묶어 하나의 새로 운 자료형을 만들 수 있으며, 이 새로운 자료형을 구조체(struct)라고 한다 • 클래스(Class) : 클래스는 구조체와 같이 서로 다른 자료형의 속성과 메소드를 포함한다. 상속을 통해 자식 클래스에 자신의 속성과 메소 드를 물려줄 수 있다 • Swift에서는 나열형, 구조체와 클래스 모두 속성과 메소드를 가질 수 있다. • Mac OS X을 위한 Cocoa 프레임워크등 개발용 프레임워크는 많은 클래스로 이루어져있다
  • 10. 용어정리 • C나 C++와 같은 프로그래밍 언어에서는 일반적으로 클 래스의 인스턴스를 객체(오브젝트)라고 한다. • Swift는 다른 언어와 달리 클래스와 구조체의 기능이 유 사하다. 클래스와 구조체의 인스턴스 모두 메소드를 가질 수 있다. • 이 때문에 Swift에서는 객체라는 용어보다 일반적인 인스턴스라는 용어를 사용한다
  • 11. 클래스와 구조체의 유사성 • 값을 저장할 속성을 정의한다 • 기능을 위한 메소드를 정의한다 • 멤버 속성의 설정과 검색을 위해서 메소드를 만들 수도 있으 나 subscript을 사용하여 인덱스로 값을 편리하게 설정하고 검색할 수 있다 • 초기상태를 설정하기 위한 init이라는 초기설정자를 제공한다 • 기본 구현내용을 확장하기 위한 기능을 제공한다(extension)
  • 12. 클래스와 구조체의 차이점 • 클래스는 구조체가 가지지 못한 다음 기능을 가진다 • 부모 클래스의 특성을 상속받는 기능이 가능하다 • 클래스 인스턴스를 형을 검사하고 반영하여 런타임시 에 형변환을 할 수 있다 • 할당된 임의의 리소스를 해지하는 deinitializer를 가진 다 • 클래스 인스턴스는 참조 카운터를 하나 이상 허용한다
  • 13. 구조체와 클래스 • 인스턴스(Instance) 선언 • 프로퍼티 접근(Property access) - 접근연산자(.)
  • 14. · 예제_인스턴스 선언과 프로퍼티 접근 구조체와 클래스 구조체 클래스