[TIL] Swift - 구조체, 클래스 3

신승현·2024년 1월 30일

TIL

목록 보기
12/72

1. 메소드

  • 메소드는 일종의 함수로서 클래스나 구조체, 열거형과 같은 객체 내에 함수를 말한다.
  • 인스턴스 메소드와 타입 메소드로 나눌 수 있다.

2. 인스턴스 메소드

  • 인스턴스 메소드는 클래스, 구조체 또는 열거형과 같은 객체 타입이 만들어내는 인스턴스에 소속된 함수이다.
  1. 구조체와 클래스의 인스턴스에 소속된다.
  2. 메서드 내에서 정의된 변수와 상수뿐만 아니라 클래스 범위에서 정의된 프로퍼티도 모두 참조할 수 있다.
  3. self 키워드를 사용할 수 있다.
struct Resolution {
    var width = 0
    var height = 0
    
    // 구조체의 요약된 설명을 리턴해주는 인스턴스 메소드
    func desc() -> String {
        let desc = "이 해상도는 가로 \(self.width) X \(self.height) 로 구성됩니다"
        return desc
    }
}

class VideoMode {
    var resolution = Resolution()
    var interlaced = false
    var frameRate = 0.0
    var name: String?
    
    // 클래스의 요약된 설명을 리턴해주는 인스턴스 메소드
    func desc() -> String {
        if self.name != nil {
            let desc = "이 \(self.name!) 비디오 모드는 \(self.frameRate)의 프레임 비율로 표시됩니다"
            return desc
        } else {
            let desc = "이 비디오 모드는 \(self.frameRate)의 프레임 비율로 표시됩니다"
            return desc
        }
    }
}

3. 타입 메소드

  • 인스턴스를 생성하지 않고 객체 타입 자체에서 호출할 수 있는 메소드를 타입 메소드라고 한다.
class Foo {
    // 타입 메서드 선언
    class func fooTyopeMethod() {
        // 타입 메서드 구현 내용 들어갑니다
    }
}

let f = Foo()
f.fooTypeMethod() // 오류
Foo.fooTypeMethod()

4. 상속

  • 객체지향에서 상속을 정의하자면 '한 클래스가 다른 클래스에서 정의된 프로퍼티나 메소드를 물려받아 사용하는 것'이라고 할 수 있다.

5. 서브 클래싱

  • 서브클래싱이란 기존에 있는 클래스를 기반으로 하여 새로운 클래스를 작성하는 과정을 의미한다.

6. 오버 라이딩

  • 클래스에서 재정의된 메서드나 프로퍼티는 부모 클래스로부터 물려받은 내용을 덮어쓰게 되는데, 이 과정을 오버라이딩(Overriding)이라고 한다.
profile
개발자

0개의 댓글