Swift 문법 5

이나래·2022년 10월 18일
  • 클래스에 저장 프로퍼티(stored property) 추가하기

class Man{
var age : Int
var weight : Double
}

-> 오류 : 초기 값이 있어야함

  • 프로퍼티는 초기값이 있거나 옵셔널 변수(상수)로 선언

    class Man{
    var age : Int = 20 //stored property는 초기값이 있어야 함
    var weight : Double = 43.5
    }
    class Man{
    var age : Int? //stored property는 초기값이 있어야 함, nil
    var weight : Double!
    }

  • 메서드 정의
    인스턴스 메서드, 클래스 또는 타입 메서드
    인스턴스 메서드는 인스턴스에서 동작

class Man{
var age : Int = 20
var weight : Double = 43.5
func display(){ //인스턴스 메서드
print("나이=(age), 몸무게=(weight)")
}
}

  • 인스턴스 만들고 메서드와 프로퍼티 접근

    class Man{
    var age : Int = 20
    var weight : Double = 43.5
    func display(){
    print("나이= (age), 몸무게= (weight)")
    }
    }
    var kim : Man = Man()
    kim.display() //인스턴스 메서드는 인스턴스가 호출
    print(kim.age)

출력 :
나이= 20, 몸무게= 43.5
20

  • 클래스 메서드

    class Man{
    var age : Int = 20
    var weight : Double = 43.5
    func display(){
    print("나이= (age), 몸무게= (weight)")
    }
    class func cM(){
    print("cM은 클래스 메서드입니다.")
    }
    static func scM(){
    print("scM은 클래스 메서드(static)")
    }
    }
    var kim : Man = Man()
    kim.display() //인스턴스 메서드는 인스턴스가 호출
    Man.cM() //클래스 메서드는 클래스가 호출
    Man.scM() //클래스 메서드는 클래스가 호출

출력 :
나이= 20, 몸무게= 43.5
cM은 클래스 메서드입니다.
scM은 클래스 메서드(static)

  • 인스턴스 초기화 : init()
    인스턴스가 만들어지면서 자동 호출
    default initializer : 모든 프로퍼티를 다 초기화 시키는 생성자
    init()을 하나라도 직접 만들면 기본적으로 만들어지는 눈에 안 보이는 default initializer는 사라짐

class Man{
var age : Int
var weight : Double // designated initializer 때문에 초기값 안 줘도 됨 (생략 가능)
func display(){
print("나이= (age), 몸무게= (weight)")
}
init(yourAge: Int, yourWeight : Double){
age = yourAge
weight = yourWeight
} //designated initializer
}
//var kim : Man = Man() //오류
//init()을 하나라도 직접 만들면 default initializer는 사라짐
var kim : Man = Man(yourAge:20, yourWeight:40.5)
kim.display()

출력 : 나이= 20, 몸무게= 40.5

  • self
    현재 클래스 내 메서드나 프로퍼티를 가리킬때 메서드나 프로퍼티 앞에 self.을 붙임

class Man{
var age : Int
var weight : Double
func display(){
print("나이= (age), 몸무게= (weight)")
}
init(age: Int, weight : Double){
self.age = age //프로퍼티 = 매개변수
self.weight = weight
}
}
var kim : Man = Man(age:20, weight:40.5)
kim.display()

출력 : 나이= 20, 몸무게= 40.5

< 인덕대학교 'iOS 프로그래밍 기초' 한성현 교수님 강의 자료 참고 >

0개의 댓글