SlideShare a Scribd company logo
Properties & Method
about Swift
창원대학교 정보통신공학과
Mobile-X 정경원
지도교수 : 박동규
2015.1.20
목차
• 저장 속성( Stored Properties)
• 연산 속성(Computed Properties)
• 메소드(Methods)
저장 속성(Stroed Properties)
• 특정 클래스와 구조체의 인스턴스에 저장되는 상수나 변수
• var 키워드로 선언되면 변수 저장 속성.
• let 키워드로 선언되면 상수 저장 속성.
저장 속성(Stroed Properties)
저장 속성(Stroed Properties)
구조체와 클래스의 차이점.
Lazy 저장 속성
• lazy 저장속성은 이 속성이 처음으로 사용되어 질 때까지 초기화
되지 않음.
• 저장 속성 앞에 lazy를 써줌으로써 lazy저장속성을 표시.
• 반드시 var 키워드로 선언된 변수에만 적용가능.
• 상수는 항상 초기 값을 가져야 하기 때문에 상수 속성으로는 선언
할 수 없다.
• 복잡한 클래스의 불필요한 인스턴스 생성을 피하기 위해, lazy 저
장 속성의 사용이 유용함.
Lazy 저장 속성
연산 속성(Computed Properties)
• 저장속성, 클래스, 구조체, 열거형은 연산 속성을 정의할 수 있음
• 연산속성은 실제로 값을 저장하지는 않고, 다른 속성이나 값들
을 간접적으로 접근하여 값을 조회하거나 수정할 수 있는 getter
와 선택적인 setter를 제공.
연산 속성(Computed Properties)
Custom Property
연산 속성(Computed Properties)
연산속성의 setter에 새로운 값이 저장될 이름을 명시해 주지
않으면 자동으로 생성되는 기본값 newValue를 사용할 수 있다.
메소드(Method)
• 기존의 객체지향언어 메소드의 형태와 사용법이 매우 유사.
• dot( . )을 이용해 접근.
• 특정 클래스, 구조체, 혹은 열거형의 인스턴스에 속하는 함수
• 인스턴스 속성에 접근하고 수정하는 방법이나, 인스턴스의
용도에 관련된 기능을 지원.
인스턴스 메소드
외부 파라미터 명
• 함수에 있는 파라미터가 정확하게 어떤 의미를 가지는지 사
용자가 명확하게 알 수 있도록 파라미터의 이름을 지어주는
것.
• 별명이라고 생각하면됨.
• 변수명 앞에 선언
• 함수 내에서 사용불가. 외부에서만 사용가능.
외부 파라미터 명
Shorthand 외부 파라미터 명
• 함수 파라미터에 외부파라미터를 사용하고, 그 외부파라미터
명이 함수 내부에서도 그대로 사용되길 원한다면, 함수 파라
미터명 앞에 해쉬심볼(#)을 써주면 된다.
• 즉, 외부파라미터명과 내부파라미터명을 따로 사용할 필요없
이 하나의 이름으로 외부 내부에서 동시에 사용할 수 있도록
해주는 기능.
Shorthand 외부 파라미터 명
• 모든 인스턴스 타입은 인스턴스 자체와 동일한 self라는
명시적 프로퍼티를 가지고 있음.
• 이 명시적 self 프로퍼티는 자신이 속한 인스턴스 내에서
현재 인스턴스를 참조 하는데 사용.
• 인스턴스 메소드 파라미터와 인스턴스 속성의 프로퍼티
가 동일한 이름을 가졌을 때 사용해서 구분.
• self는 다른 객체지향 언어에서 this와 같은 의미. 즉, 자
기자신을 가리킴.
The Self Property
The Self Property
self가 없다면 x는 둘다 메소드
파라미터를 참조한다고 여김.
• 구조체와 열거형은 값타입이라서 인스턴스 생성후에는
메소드를 통해서 해당 인스턴스의 속성을 변경할 수 없는
데 이를 가능하게 하는 방법.
• mutating이라는 키워드를 인스턴스 메소드 앞에 선언하
게 되면 이 메소드를 통해서 속성 변경 가능.
Mutating
Mutating
함수 이름만으로 첫번째 인수값의 용도가 명확해지기 때문에
외부 파라미터에 대해서 정의 할 필요가 없다.
하지만 두 번째 인수는 메소드가 호출되었을때, 그 용도를 명확
히 하기 위해서 외부파라미터 이름을 규정함.
Mutating
구조체 인스턴스가 상수 타입의 변수에 할당 될때
는 mutating 을 사용 못함.
Thank you
참고 자료
• http://blog.naver.com/seotaji/220136040885
• http://blog.naver.com/seotaji/220134412908
• http://swift.leantra.kr/

More Related Content

PPTX
Java generics
PPTX
More effective c++ Chap1~2
PDF
[SwiftStudy 2016] 3장. 함수
PDF
Scala block expression
PDF
Scala variable
PDF
Scala implicit
PDF
[SwiftStudy 2016] 2장. Swift 타입 파트 1
PPTX
Scala trait usage
Java generics
More effective c++ Chap1~2
[SwiftStudy 2016] 3장. 함수
Scala block expression
Scala variable
Scala implicit
[SwiftStudy 2016] 2장. Swift 타입 파트 1
Scala trait usage

What's hot (20)

PDF
Scala self type inheritance
PPTX
NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++
PDF
스칼라 클래스 이해하기 _Scala class understanding
PDF
Scala namespace scope
PDF
Scala syntax function
PDF
Scala type args
PPTX
Scala nested function generic function
PDF
Scala companion object
PPTX
이펙티브 C++ (7~9)
PPTX
이펙티브 C++ 스터디
PPTX
이펙티브 C++ 공부
PDF
M1 2 1
PDF
10 swift 열거형구조체클래스
PPT
Chapter8 상속과다형성(윤현성)
PDF
[Swift] Properties
PPTX
이펙티브 C++ 5,6 장 스터디
PDF
Swift5 vs objective c
PDF
Scala type class pattern
PPTX
[C++ lab] 3. c++ 프로그래밍
PPTX
Effective c++ 1,2
Scala self type inheritance
NHNNEXT 개경프14 Subway Rocket Team Study 3rd C++
스칼라 클래스 이해하기 _Scala class understanding
Scala namespace scope
Scala syntax function
Scala type args
Scala nested function generic function
Scala companion object
이펙티브 C++ (7~9)
이펙티브 C++ 스터디
이펙티브 C++ 공부
M1 2 1
10 swift 열거형구조체클래스
Chapter8 상속과다형성(윤현성)
[Swift] Properties
이펙티브 C++ 5,6 장 스터디
Swift5 vs objective c
Scala type class pattern
[C++ lab] 3. c++ 프로그래밍
Effective c++ 1,2
Ad

Similar to Swift세미나(속성(properties), 메소드(method)) (20)

PDF
Java class
PDF
Java_05 class
PPTX
[HaU] 신입 기술 면접 준비 java
PPTX
Chapter5 ~ 6
PPTX
파이썬 namespace Binding 이해하기
PDF
Momenti Seminar - A Tour of Rust, Part 1
PPTX
0.javascript기본(~3일차내)
PDF
Swift 3 Programming for iOS : class and structure
PPTX
15 swift 클래스
PPTX
4-1. javascript
PPTX
객체지향 프로그래밍 기본
PPTX
[아꿈사] The C++ Programming Language 13장 템플릿
PPTX
Annotation
PDF
2023.05.01 발표 자료 : 자바의 기초
PPTX
Effective c++ chapter 7,8
PPTX
Effective c++ 4
PPTX
Use JavaScript more strictly (feat. TypeScript, flow)
PPTX
Effective c++ 정리 1~2
PPTX
5강 코드효율성
PPTX
[자바카페] 자바 객체지향 프로그래밍 (2017)
Java class
Java_05 class
[HaU] 신입 기술 면접 준비 java
Chapter5 ~ 6
파이썬 namespace Binding 이해하기
Momenti Seminar - A Tour of Rust, Part 1
0.javascript기본(~3일차내)
Swift 3 Programming for iOS : class and structure
15 swift 클래스
4-1. javascript
객체지향 프로그래밍 기본
[아꿈사] The C++ Programming Language 13장 템플릿
Annotation
2023.05.01 발표 자료 : 자바의 기초
Effective c++ chapter 7,8
Effective c++ 4
Use JavaScript more strictly (feat. TypeScript, flow)
Effective c++ 정리 1~2
5강 코드효율성
[자바카페] 자바 객체지향 프로그래밍 (2017)
Ad

Swift세미나(속성(properties), 메소드(method))

  • 1. Properties & Method about Swift 창원대학교 정보통신공학과 Mobile-X 정경원 지도교수 : 박동규 2015.1.20
  • 2. 목차 • 저장 속성( Stored Properties) • 연산 속성(Computed Properties) • 메소드(Methods)
  • 3. 저장 속성(Stroed Properties) • 특정 클래스와 구조체의 인스턴스에 저장되는 상수나 변수 • var 키워드로 선언되면 변수 저장 속성. • let 키워드로 선언되면 상수 저장 속성.
  • 6. Lazy 저장 속성 • lazy 저장속성은 이 속성이 처음으로 사용되어 질 때까지 초기화 되지 않음. • 저장 속성 앞에 lazy를 써줌으로써 lazy저장속성을 표시. • 반드시 var 키워드로 선언된 변수에만 적용가능. • 상수는 항상 초기 값을 가져야 하기 때문에 상수 속성으로는 선언 할 수 없다. • 복잡한 클래스의 불필요한 인스턴스 생성을 피하기 위해, lazy 저 장 속성의 사용이 유용함.
  • 8. 연산 속성(Computed Properties) • 저장속성, 클래스, 구조체, 열거형은 연산 속성을 정의할 수 있음 • 연산속성은 실제로 값을 저장하지는 않고, 다른 속성이나 값들 을 간접적으로 접근하여 값을 조회하거나 수정할 수 있는 getter 와 선택적인 setter를 제공.
  • 10. 연산 속성(Computed Properties) 연산속성의 setter에 새로운 값이 저장될 이름을 명시해 주지 않으면 자동으로 생성되는 기본값 newValue를 사용할 수 있다.
  • 11. 메소드(Method) • 기존의 객체지향언어 메소드의 형태와 사용법이 매우 유사. • dot( . )을 이용해 접근. • 특정 클래스, 구조체, 혹은 열거형의 인스턴스에 속하는 함수 • 인스턴스 속성에 접근하고 수정하는 방법이나, 인스턴스의 용도에 관련된 기능을 지원.
  • 13. 외부 파라미터 명 • 함수에 있는 파라미터가 정확하게 어떤 의미를 가지는지 사 용자가 명확하게 알 수 있도록 파라미터의 이름을 지어주는 것. • 별명이라고 생각하면됨. • 변수명 앞에 선언 • 함수 내에서 사용불가. 외부에서만 사용가능.
  • 15. Shorthand 외부 파라미터 명 • 함수 파라미터에 외부파라미터를 사용하고, 그 외부파라미터 명이 함수 내부에서도 그대로 사용되길 원한다면, 함수 파라 미터명 앞에 해쉬심볼(#)을 써주면 된다. • 즉, 외부파라미터명과 내부파라미터명을 따로 사용할 필요없 이 하나의 이름으로 외부 내부에서 동시에 사용할 수 있도록 해주는 기능.
  • 17. • 모든 인스턴스 타입은 인스턴스 자체와 동일한 self라는 명시적 프로퍼티를 가지고 있음. • 이 명시적 self 프로퍼티는 자신이 속한 인스턴스 내에서 현재 인스턴스를 참조 하는데 사용. • 인스턴스 메소드 파라미터와 인스턴스 속성의 프로퍼티 가 동일한 이름을 가졌을 때 사용해서 구분. • self는 다른 객체지향 언어에서 this와 같은 의미. 즉, 자 기자신을 가리킴. The Self Property
  • 18. The Self Property self가 없다면 x는 둘다 메소드 파라미터를 참조한다고 여김.
  • 19. • 구조체와 열거형은 값타입이라서 인스턴스 생성후에는 메소드를 통해서 해당 인스턴스의 속성을 변경할 수 없는 데 이를 가능하게 하는 방법. • mutating이라는 키워드를 인스턴스 메소드 앞에 선언하 게 되면 이 메소드를 통해서 속성 변경 가능. Mutating
  • 20. Mutating 함수 이름만으로 첫번째 인수값의 용도가 명확해지기 때문에 외부 파라미터에 대해서 정의 할 필요가 없다. 하지만 두 번째 인수는 메소드가 호출되었을때, 그 용도를 명확 히 하기 위해서 외부파라미터 이름을 규정함.
  • 21. Mutating 구조체 인스턴스가 상수 타입의 변수에 할당 될때 는 mutating 을 사용 못함.
  • 23. 참고 자료 • http://blog.naver.com/seotaji/220136040885 • http://blog.naver.com/seotaji/220134412908 • http://swift.leantra.kr/