Swift/Swift-Basica

Swift (5) - Class

peter.j 2022. 8. 19. 22:19

1. 클래스 정의

Swift의 기본적인 클래스 정의는 다음과 같습니다.

/* 클래스 정의 */
class 클래스이름 {
    /* 프로퍼티 정의 */
    var property: PropertyType
    
    /* 생성자 정의 : 생성자가 있을 경우에는 반드시 생성자를 통해서 인스턴스가 생성됩니다. */
    init(p: PropertyType) {
        self.property = p
    }
    
    /* 메서드 정의 */
    func method(param: ParamType) -> MethodType {
        return "반환값"
    }
}

/* 인스턴스 생성 및 사용 */
var instance: 클래스이름 = 클래스이름(p : "초기프로퍼티 값")
instance.property = "가변프로퍼티 변경값"
instance.method(param : "메서드 호출")
💡 XCode 개발시 println 표준 출력 함수를 사용하는데, Xcode의 플레이 그라운드에서 실행하는 경우, "Assistant Editer“라는 것을 표시하는 것이 편리합니다.

Xcode의 상단탭 - [View] - [Assistant Editor] - [Show Assistant Editor]를 누르면 우측에 Assistant Editor가 나타나고, 표준 출력 함수가 호출되면 Console Output에 출력됩니다.

 

 

2. 클래스 상속

class Friend {
    var name:String
    
    init(name:String) {
        self.name = name
    }
    
    func say(){
        print("Hello, " + name + "!");
    }
}

class BestFriend : Friend {
    var age:Int
    
    init(name:String, age:Int) {
        self.age = age
        super.init(name:name)
    }
    
    func say(){
        print("What's up, " + name + "!");
    }
}

 

 

3. 프로퍼티의 getter 및 setter

Swift에서는 Computed 속성(프로퍼티)라고 부릅니다.

var 속성 : 타입 {
    get {
        ... 처리 ...
        return 값
    }
    set {
        ... 처리 ...
    }
}

 

 

4. Static 메서드 및 Static 프로퍼티

Swift에서는 유형 속성과 유형메서드라고 부릅니다.

메서드와 프로퍼티 선언 앞에 class를 붙이면 static하게 동작합니다.

class Exchange {
    class var rate:Double {
        return 1005.0
    }
    
    class func DollarToWon(d:Double)->Int {
        return Int(d * rate)
    }
    
    class func WonToDollar(y:Int)->Double {
        return Double((y * 100) / Int(rate)) / 100
    }
}

print(Exchange.DollarToWon(1.5))
print(Exchange.WonToDollar(1500))

 

 

 

참고

https://www.devkuma.com/docs/swift/%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B8%B0%EB%B3%B8/

 

Swift 입문 | 클래스 기본

개발 지식 공유

www.devkuma.com

 

사업자 정보 표시펼치기/접기
1 | g | asdf | 사업자 등록번호 : 123-12-12345 | TEL : 010-111-1111 | Mail : asdf@gmail.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기