객체 지향 프로그래밍에서 클래스(Class)또는 구조체(Struct)를 기반으로 생성된 실제 데이터
클래스와 구조체
설계도와 같은 역할.
쉽게 말하면, 붕어빵을 찍어내는데 필요한 '붕어빵 틀'.
인스턴스
이런 설계도를 바탕으로 실제로 메모리에 할당된 데이터.
즉 붕어빵 틀로 찍어낸 '진짜 붕어빵'.
// 클래스
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)
즉, 인스턴스는 클래스나 구조체를 실제로 사용하고 데이터를 다루기 위한 독립적인 개체.
이를 통해 여러 개의 인스턴스를 생성해 서로 다른 상태를 가지고 있는 객체를 만들 수 있고, 객체 지향 프로그래밍의 특징인 캡슐화, 상속, 다형성 등을 구현 가능.