SlideShare a Scribd company logo
1 of 15
15. Swift 튜토리얼
- 클래스
창원대학교 정보통신공학과 박동규
2016. 2.
클래스
• Swift는 객체지향 프로그래밍의 특징을 가진다
• 클래스를 통하여 인스턴스를 속성과 메소드를 정
의한다
• 값을 저장하는 속성(프로퍼티)을 가진다
• 함수적인 기능을 제공하는 메소드를 가진다
클래스
• 객체를 초기상태로 설정하는 초기화 블록을 정의
할 수 있다
• 객체의 기능을 확장하는 기능을 제공한다
• 한 클래스의 기능을 다른 클래스가 물려받아 사용
하는 상속기능이 있다
• 클래스 인스턴스에 할당된 리소스를 인스턴스 소
멸시 직접 해제하는 기능(소멸화 구문)을 가진다
예시
클래스 프로퍼티 초기화
• 클래스에서 프로퍼티의 초기값을 할당하지 않으
면 오류
프로퍼티에 초기값을 할당하지 않으면 오류
클래스 프로퍼티 초기화
또는 init() 초기화 구문을 사용
init()
• 인스턴스가 생성되는 시점에 자동적으로 호출됨
deinit
• 인스턴스가 해제되는 시점에 자동적으로 호출됨, () 없음
• 매개변수가 필요없기 때문임
상속
• 현재 클래스의 프로퍼티와 메소드를 자식 클래스
에게 물려줌 - 객체지향 프로그래밍의 장점
오버라이딩
• 부모 클래스의 메소드를 물려받아 추가적인 기능을 확장
하는 기능
self
• self : 클래스의 인스턴스를 지칭함
• self.color는 매개변수 color와 구분되는 현재 인스턴스의
프로퍼티이다
super
• super : 현재 클래스의 부모 클래스를 참조하는 참
조자
• super.init() 초기화 블럭이나 super.func() 메소드
를 호출하여 부모 클래스의 메소드를 사용할 수
있다
final 클래스
• 클래스 선언시에 final 키워드가 붙으면 상속이 차
단되는 클래스가 된다.
• 이 final 클래스로 서브클래싱을 할 수 없다.
• 보안상 필요한 경우나 상속을 목적으로 하지 않
는 클래스의 경우에 사용
상속
• 객체지향 프로그래밍에서 아주 중요한 개념
• 반복적인 코딩을 줄여주며 재사용성이 높아진다
• 전체적으로 코딩의 효율성이 증대된다
• 오버라이딩을 통해서 상위 클래스의 기능을 보완
할 수 있다
감사합니다
dongupak@gmail.com

More Related Content

What's hot

Spring di chapter2
Spring di chapter2Spring di chapter2
Spring di chapter2흥래 김
 
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼Sanghoon Yoon
 
Effective c++ 4
Effective c++ 4Effective c++ 4
Effective c++ 4현찬 양
 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1현찬 양
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2현찬 양
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1현찬 양
 
Effective C++ Chaper 1
Effective C++ Chaper 1Effective C++ Chaper 1
Effective C++ Chaper 1연우 김
 
Oop design principle
Oop design principleOop design principle
Oop design principleRyan Park
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍QooJuice
 
Game programming patterns
Game programming patternsGame programming patterns
Game programming patternsQooJuice
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3현찬 양
 
effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리Injae Lee
 
Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리연우 김
 
Refactoring #7
Refactoring #7Refactoring #7
Refactoring #7Jay Kim
 
C++ try catch 어디까지 가봤니
C++ try catch 어디까지 가봤니C++ try catch 어디까지 가봤니
C++ try catch 어디까지 가봤니Dong Chan Shin
 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2현찬 양
 
More effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinMore effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinDong Chan Shin
 

What's hot (20)

Spring di chapter2
Spring di chapter2Spring di chapter2
Spring di chapter2
 
Java 기초
Java 기초Java 기초
Java 기초
 
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
 
Effective c++ 4
Effective c++ 4Effective c++ 4
Effective c++ 4
 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1
 
Effective C++ Chaper 1
Effective C++ Chaper 1Effective C++ Chaper 1
Effective C++ Chaper 1
 
Java inner class
Java inner classJava inner class
Java inner class
 
Oop design principle
Oop design principleOop design principle
Oop design principle
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍
 
5 6 1
5 6 15 6 1
5 6 1
 
Game programming patterns
Game programming patternsGame programming patterns
Game programming patterns
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3
 
effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리effective c++ chapter 3~4 정리
effective c++ chapter 3~4 정리
 
Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리Effective c++ 챕터 2 정리
Effective c++ 챕터 2 정리
 
Refactoring #7
Refactoring #7Refactoring #7
Refactoring #7
 
C++ try catch 어디까지 가봤니
C++ try catch 어디까지 가봤니C++ try catch 어디까지 가봤니
C++ try catch 어디까지 가봤니
 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2
 
More effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinMore effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshin
 

Similar to 15 swift 클래스

Python class
Python classPython class
Python classHerren
 
자바스크립트 프로토타입 및 클래스
자바스크립트 프로토타입 및 클래스자바스크립트 프로토타입 및 클래스
자바스크립트 프로토타입 및 클래스Lee Dong Wook
 
객체지향 프로그래밍 기본
객체지향 프로그래밍 기본객체지향 프로그래밍 기본
객체지향 프로그래밍 기본용호 최
 
Swift세미나(속성(properties), 메소드(method))
Swift세미나(속성(properties), 메소드(method))Swift세미나(속성(properties), 메소드(method))
Swift세미나(속성(properties), 메소드(method))경원 정
 
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)MIN SEOK KOO
 
[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)용호 최
 
Start IoT with JavaScript - 7.프로토타입
Start IoT with JavaScript - 7.프로토타입Start IoT with JavaScript - 7.프로토타입
Start IoT with JavaScript - 7.프로토타입Park Jonggun
 
9 object class
9 object class9 object class
9 object class웅식 전
 
[새차원, 코틀린(Kotlin) 강좌] 7 classes and_inheritance
[새차원, 코틀린(Kotlin) 강좌] 7 classes and_inheritance[새차원, 코틀린(Kotlin) 강좌] 7 classes and_inheritance
[새차원, 코틀린(Kotlin) 강좌] 7 classes and_inheritance정연 최
 
파이썬 객체 클래스 이해하기
파이썬  객체 클래스 이해하기파이썬  객체 클래스 이해하기
파이썬 객체 클래스 이해하기Yong Joon Moon
 
스칼라 클래스 이해하기 _Scala class understanding
스칼라 클래스 이해하기 _Scala class understanding스칼라 클래스 이해하기 _Scala class understanding
스칼라 클래스 이해하기 _Scala class understandingYong Joon Moon
 
Mec++ chapter3,4
Mec++ chapter3,4Mec++ chapter3,4
Mec++ chapter3,4문익 장
 

Similar to 15 swift 클래스 (15)

Python class
Python classPython class
Python class
 
자바스크립트 프로토타입 및 클래스
자바스크립트 프로토타입 및 클래스자바스크립트 프로토타입 및 클래스
자바스크립트 프로토타입 및 클래스
 
객체지향 프로그래밍 기본
객체지향 프로그래밍 기본객체지향 프로그래밍 기본
객체지향 프로그래밍 기본
 
Swift세미나(속성(properties), 메소드(method))
Swift세미나(속성(properties), 메소드(method))Swift세미나(속성(properties), 메소드(method))
Swift세미나(속성(properties), 메소드(method))
 
Java_05 class
Java_05 classJava_05 class
Java_05 class
 
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
 
[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)
 
Start IoT with JavaScript - 7.프로토타입
Start IoT with JavaScript - 7.프로토타입Start IoT with JavaScript - 7.프로토타입
Start IoT with JavaScript - 7.프로토타입
 
9 object class
9 object class9 object class
9 object class
 
[새차원, 코틀린(Kotlin) 강좌] 7 classes and_inheritance
[새차원, 코틀린(Kotlin) 강좌] 7 classes and_inheritance[새차원, 코틀린(Kotlin) 강좌] 7 classes and_inheritance
[새차원, 코틀린(Kotlin) 강좌] 7 classes and_inheritance
 
Design patterns
Design patternsDesign patterns
Design patterns
 
파이썬 객체 클래스 이해하기
파이썬  객체 클래스 이해하기파이썬  객체 클래스 이해하기
파이썬 객체 클래스 이해하기
 
LLVM ARC
LLVM ARCLLVM ARC
LLVM ARC
 
스칼라 클래스 이해하기 _Scala class understanding
스칼라 클래스 이해하기 _Scala class understanding스칼라 클래스 이해하기 _Scala class understanding
스칼라 클래스 이해하기 _Scala class understanding
 
Mec++ chapter3,4
Mec++ chapter3,4Mec++ chapter3,4
Mec++ chapter3,4
 

More from Changwon National University

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdfChangwon National University
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능Changwon National University
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)Changwon National University
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)Changwon National University
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리Changwon National University
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와selfChangwon 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 리스트의 메소드
 

15 swift 클래스

  • 1. 15. Swift 튜토리얼 - 클래스 창원대학교 정보통신공학과 박동규 2016. 2.
  • 2. 클래스 • Swift는 객체지향 프로그래밍의 특징을 가진다 • 클래스를 통하여 인스턴스를 속성과 메소드를 정 의한다 • 값을 저장하는 속성(프로퍼티)을 가진다 • 함수적인 기능을 제공하는 메소드를 가진다
  • 3. 클래스 • 객체를 초기상태로 설정하는 초기화 블록을 정의 할 수 있다 • 객체의 기능을 확장하는 기능을 제공한다 • 한 클래스의 기능을 다른 클래스가 물려받아 사용 하는 상속기능이 있다 • 클래스 인스턴스에 할당된 리소스를 인스턴스 소 멸시 직접 해제하는 기능(소멸화 구문)을 가진다
  • 5. 클래스 프로퍼티 초기화 • 클래스에서 프로퍼티의 초기값을 할당하지 않으 면 오류 프로퍼티에 초기값을 할당하지 않으면 오류
  • 6. 클래스 프로퍼티 초기화 또는 init() 초기화 구문을 사용
  • 7. init() • 인스턴스가 생성되는 시점에 자동적으로 호출됨
  • 8. deinit • 인스턴스가 해제되는 시점에 자동적으로 호출됨, () 없음 • 매개변수가 필요없기 때문임
  • 9. 상속 • 현재 클래스의 프로퍼티와 메소드를 자식 클래스 에게 물려줌 - 객체지향 프로그래밍의 장점
  • 10. 오버라이딩 • 부모 클래스의 메소드를 물려받아 추가적인 기능을 확장 하는 기능
  • 11. self • self : 클래스의 인스턴스를 지칭함 • self.color는 매개변수 color와 구분되는 현재 인스턴스의 프로퍼티이다
  • 12. super • super : 현재 클래스의 부모 클래스를 참조하는 참 조자 • super.init() 초기화 블럭이나 super.func() 메소드 를 호출하여 부모 클래스의 메소드를 사용할 수 있다
  • 13. final 클래스 • 클래스 선언시에 final 키워드가 붙으면 상속이 차 단되는 클래스가 된다. • 이 final 클래스로 서브클래싱을 할 수 없다. • 보안상 필요한 경우나 상속을 목적으로 하지 않 는 클래스의 경우에 사용
  • 14. 상속 • 객체지향 프로그래밍에서 아주 중요한 개념 • 반복적인 코딩을 줄여주며 재사용성이 높아진다 • 전체적으로 코딩의 효율성이 증대된다 • 오버라이딩을 통해서 상위 클래스의 기능을 보완 할 수 있다