swift

swift - Structures & Classes

행복하게사는게꿈 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()

 

 

저장방식에 차이점이 있음