클래스와 객체, 인스턴스란?

seokhoho·2023년 12월 1일
0

swift

목록 보기
3/5

클래스

클래스란 객체(object)를 만들어 내기 위한 틀이며 만들어 낼 객체의 속성과 메서드의 집합을 담아 놓은것

객체

객체(object)란 클래스로부터 만들어지는 실체, 클래스로 선언된 변수를 객체라 한다.

인스턴스

인스턴스(Instance)란 객체가 메모리에 할당이 된 상태이며 런타임에 구동되는 객체를 말합니다. 객체와 같은 의미로 쓰이기도 합니다.


예제

class Person {
    
    let name: String
    var iq: Int
    var str: Int
    
    init(name: String, iq: Int, str: Int) {
        self.name = name
        self.iq = iq
        self.str = str
    }
    
    func introduction() {
        print("저의 이름은 \(self.name), 지능은 \(self.iq), 힘은 \(self.str)입니다.")
    }
    
    func levelUp() {
        self.iq += 1
        self.str += 1
        print("\(self.name)의 지능과 힘이 증가했습니다! 지능: \(self.iq)/힘: \(self.str)")
    }
}

name, iq, str 속성을 갖고 introduction, levelUp이라는 메서드를 갖은 클래스


// 클래스 타입을 갖은 변수가 객체
let hoho: Person

// 인스턴스화 
hoho = Person(name: "호호", iq: 100, str: 100)

hoho.introduction() // 저의 이름은 호호, 지능은 100, 힘은 100입니다.
hoho.levelUp() // 호호의 지능과 힘이 증가했습니다! 지능: 101/힘: 101
hoho.levelUp() // 호호의 지능과 힘이 증가했습니다! 지능: 102/힘: 102
hoho.introduction() // 저의 이름은 호호, 지능은 102, 힘은 102입니다.

// 객체를 생성하며 인스턴스화
let gwangsu = Person(name: "광수", iq: 99, str: 99)
gwangsu.introduction() // 저의 이름은 광수, 지능은 99, 힘은 99입니다.

클래스 타입을 갖은 실체 곧 변수가 객체
객체가 메모리가 할당되면서 인스턴스화



마무리

유튜브 설명을 보고 헷갈렸던게 어느정도 정리가 되었다.



참조
https://www.youtube.com/watch?v=nHR1hfIrBwI

profile
iOS 코린이

0개의 댓글