[swift] 관계 정의

Swift는 객체 지향 프로그래밍 언어로, 다양한 객체들 간에 관계를 형성할 수 있습니다. 관계는 객체 간의 연결이며, 한 객체가 다른 객체를 참조할 수 있도록 합니다. 이러한 관계를 정의하기 위해 Swift에서는 몇 가지 기본적인 개념과 방법을 제공합니다.

클래스와 인스턴스

객체 지향 프로그래밍에서 관계를 정의하기 위해 먼저 클래스와 인스턴스의 개념을 이해해야 합니다. 클래스는 관련된 속성과 동작을 가진 객체의 기본 틀이며, 인스턴스는 클래스를 기반으로 생성된 개별 객체입니다.

다음은 Person 클래스와 이를 기반으로 생성된 두 개의 Person 인스턴스를 보여줍니다.

class Person {
    var name: String // 속성: 이름
    var age: Int // 속성: 나이
    
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

let person1 = Person(name: "John", age: 25)
let person2 = Person(name: "Jane", age: 30)

관계 정의하기

Swift에서 객체 간의 관계를 정의하기 위해 다음과 같은 방법들을 사용할 수 있습니다.

1. 속성을 통한 관계

객체 간의 관계를 정의하기 위해 속성을 활용할 수 있습니다. 예를 들어, Person 클래스에는 friends라는 속성을 추가하여 친구들을 나타낼 수 있습니다.

class Person {
    var name: String
    var age: Int
    var friends: [Person] // 속성: 친구들
    
    init(name: String, age: Int) {
        self.name = name
        self.age = age
        self.friends = []
    }
}

let person1 = Person(name: "John", age: 25)
let person2 = Person(name: "Jane", age: 30)

person1.friends.append(person2)

2. 메서드를 통한 관계

객체 간의 관계를 정의하고 다루기 위해 메서드를 사용할 수도 있습니다. 예를 들어, Person 클래스에는 addFriend 메서드를 추가하여 친구를 추가할 수 있습니다.

class Person {
    var name: String
    var age: Int
    var friends: [Person]
    
    init(name: String, age: Int) {
        self.name = name
        self.age = age
        self.friends = []
    }
    
    func addFriend(_ friend: Person) {
        friends.append(friend)
    }
}

let person1 = Person(name: "John", age: 25)
let person2 = Person(name: "Jane", age: 30)

person1.addFriend(person2)

결론

Swift에서는 객체 간의 관계를 속성과 메서드를 통해 간단하게 정의할 수 있습니다. 클래스와 인스턴스 개념을 이해하고 관련된 속성과 메서드를 사용하여 객체 간의 관계를 유지하고 다룰 수 있습니다.

더 자세한 내용은 Swift 공식 문서를 참고하세요.