-
swift - Structures & Classesswift 2021. 1. 7. 21:09
Structures & Classes
swift는 방대한 형식의 데이터 타입을 제공하지만 우리가 필요한 모든 데이터 타입을 제공하진 않음
Programming Paradigm
프로그램 언어는 저마다 프로그래밍 철학을 가지고 있고 내부적인 규칙 등의 차이가 있다.
이러한 것을 Programming Paradigm이라고 하는데 프로그래밍 언어가 다양한만큼 Programming Paradigm 또한 다양하다.
swift는 Multi Paradigm언어이고
이 세가지 paradigm이 큰 축을 이루고 있다.
1. Object-Oriented Programming
객체지향 프로그래밍에서 가장 중요한 것은 Object(객체)
프로그램에서 표현하는 모든 데이터를 객체로 표현한다.
1.1 Abstraction (추상화) : 객체로 만드는 과정
1.2 Class : 추상화의 결과를 코드로 표현한 것 (객체로 만들기 위한 설계도)
1.3 Instance : Class를 통해 생성된 한개의 객체
1.4 Interaction
객체 지향 프로그래밍에서는 객체들끼리 상호작용하도록 class를 구현
다른 객체를 호출하거나 상태를 바꾸는 것 (sending Message)
cocoapod framwork에서는 message를 보내는 객체를 sender, 받는 객체를 receiver라고 부른다.
1.5 Structure
- 구조체
- 객체지향에서는 새로운 형식을 만들때 대부분 class로 구분한다.
- 다른 언어에서는 class에 비해 Structure의 기능이 제한적이지만 swift에서는 그렇지 않다.
- Class와 달리 객체라고 부르지 않고 값이라고 부름
Class 와 Structure
Structure
struct Person{ // member라고 부름 var name: String var age: Int func speak() { print("Hello") } } // 새로운 Instance 생성 let p = Person(name: "Steve", age: 50) let name = "Paul" name p.name p.age p.speak()
Class
class Person { var name = "Jon Doe" var age = 0 func speak() { print("Hello") } } let p = Person()
저장방식에 차이점이 있음
'swift' 카테고리의 다른 글
swift - Identity Operators(항등 연산자) (0) 2021.01.08 swift - Value Types And Reference Types(값 형식과 참조 형식) (0) 2021.01.08 swift - Enumerations(RawValue, Associated Value, Enumeration case Pattern) (0) 2021.01.07 swift - Iterating Collections(for-in, foreach) (0) 2021.01.07 swift - set #2 (Comparing Sets, Combining Sets) (0) 2021.01.07