
1. 메소드
- 메소드는 일종의 함수로서 클래스나 구조체, 열거형과 같은 객체 내에 함수를 말한다.
- 인스턴스 메소드와 타입 메소드로 나눌 수 있다.
2. 인스턴스 메소드
- 인스턴스 메소드는 클래스, 구조체 또는 열거형과 같은 객체 타입이 만들어내는 인스턴스에 소속된 함수이다.
- 구조체와 클래스의 인스턴스에 소속된다.
- 메서드 내에서 정의된 변수와 상수뿐만 아니라 클래스 범위에서 정의된 프로퍼티도 모두 참조할 수 있다.
- 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)이라고 한다.