본문 바로가기
iOS

[16일차] Class 사용

by 디지털노마더 2020. 8. 4.

* Class와 Struct 차이 비교
  - class : Heap(느림) / struct : Stack(빠름)

  - structure은 Copy(복사 = 별도로 관리) 개념, class는 Share(공유 = 같은 곳을 바라봄) 개념

 

 

신규 생성된 클래스는 별도 관리

 

 

<전체 코드>

import UIKit

struct PersonStruct {
    var firstName: String
    var lastName: String
    
    var fullName: String {
        return "\(firstName) \(lastName)"
    }
    
    mutating func uppercaseName() {
        firstName = firstName.uppercased()
        lastName = lastName.uppercased()
    }
}

class PersonClass {
    
    var firstName: String
    var lastName: String
    
    init(firstName: String, lastName: String) {
        self.firstName = firstName
        self.lastName = lastName
    }
    
    var fullName: String {
        return "\(firstName) \(lastName)"
    }
}

var personStruct1 = PersonStruct(firstName: "hoyadev", lastName: "Lee")
var personStruct2 = personStruct1

var personClass1 = PersonClass(firstName: "hoyadev", lastName: "Lee")
var personClass2 = personClass1

personStruct2.firstName = "Jay"
personStruct1.firstName
personStruct2.firstName

personClass2.firstName = "Jay"
personClass1.firstName
personClass2.firstName

personClass2 = PersonClass(firstName: "Bob", lastName: "Lee") // 새로 생성한 클래스 객체를 참조
personClass1.firstName
personClass2.firstName

personClass1 = personClass2 // 신규 생성된 객체로 참조 설정
personClass1.firstName
personClass2.firstName

 

 

댓글