Swift 클래스 (Class)

정승호·2022년 5월 31일
0

클래스 (Class)

  • 객체라는 용어 대신에 인스턴스 라고 합니다.
    한마디로 클래스 타입의 인스턴스를 객체라고 칭하지 않습니다.
  • 단일 상속만 가능합니다.
  • 참조타입, 리퍼런스 (reference) 라고 부릅니다.
  • IOS 프레임워크 대부분이 클래스로 구성되어 있습니다.
  • 클래스를 선언하기 위해서는 class 클래스 이름 { 코드 } 이렇게 코드를 작성 하면 됩니다.
    클래스 안(코드)의 변수를 속성(property)라고 부르고,
    클래스 안(코드)의 함수를 메소드(method)라고 부릅니다.

구조체 (Struck)

  • Class와 다르게 상속이 불가능 합니다.
  • 값타입(value라고 부릅니다.)
  • SwiftUI에서는 대부분이 Struck으로 구성되어 있습니다.

struck 을 사용하는 경우

  • 연관된 값들을 모아서 하나의 데이터 타입으로 표현하고 싶을 때
  • 참조가 아닌 복사를 원할 때
  • 자신을 상속할 필요가 없거나 자신이 다른 타입을 상속받을 필요가 없을 때

구조체와 클래스

차이점

strA의 a값을 10 -> 20으로 바꿨습니다.
프린트값은 10, struck은 값을 복사 한다는 의미로 a값을 20으로 바꿔도(복사본)
원본인 10값은 바뀌지 않습니다.

반면, clsB의 a값은 프린트값이 20이 출력되었는데요.
이는 클래스가 참조타입이기 때문에, a값이 영향을 받았음을 알 수 있습니다.

같은점

  • 값을 저장하기 위해 프로퍼티를 정의할 수 있습니다.
  • 기능 실행을 위해 메소드를 정의할 수 있습니다.
class Name {
    var name = "Don"
    
    func my_name() {
        print("my name is \(name)")
    }
}

참고 자료

https://seons-dev.tistory.com/129

https://seons-dev.tistory.com/119

https://seons-dev.tistory.com/30

https://velog.io/@wook4506/iOS-Swift-Swift-%EB%AC%B8%EB%B2%95%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-7%ED%8E%B8-%ED%81%B4%EB%9E%98%EC%8A%A4-Class#%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%B4%88%EA%B8%B0%ED%99%94-initialization

https://www.youtube.com/watch?v=L8JtVz5L_Oo

0개의 댓글