점진적 과부하 개발 블로그

Swift 클래스(class) 본문

Swift/문법

Swift 클래스(class)

지용빡 2022. 1. 6. 23:46
반응형
클래스란 무엇인가?
객체가 생성되었을 때 어떠한 모습을 보일 것인지를 정의한 것입니다.
같은 종류의 집단에 속하는 속성과 행위를 정의한 것입니다.
객체지향 프로그램의 기본 사용자 정의 데이터 타입이라고 할 수 있습니다. 
클래스 선언
  • 프로퍼티 부분은 클래스 내에 포함되는 변수와 상수를 정의한다.
  • 인스턴스 메서드는 객체가 호출하는 메서드를 정의한다.
  • 타입 메서드는 클래스가 호출하는 메서드를 정의한다.
class 새로운 클래스 이름: 부모 클래스 {
	// 프로퍼티
    // 인스턴스 메서드
    // 타입 메서드(클래스 메서드)
}
클래스의 property
class Animal {
	var dog : String? 
    var cat : String?
}
클래스에 메서드(method)
class Animal {
    var dog: String = "강아지"
    var cat: String = "고양이"
    func display() {
        print("좋아하는 동물=\(dog), 싫어하는 동물=\(cat)")
    }
}
클래스의 인스턴스(객체) 만들기 
클래스로부터 만들어진 객체를 인스턴스라 한다.
class Animal {
    var dog: String = "강아지"
    var cat: String = "고양이"
    func display() {
        print("좋아하는 동물=\(dog), 싫어하는 동물=\(cat)")
    }
}
var animal = Animal() // var 인스턴스명: 클래스명()
animal.display() // 인스턴스 메서드는 인스턴스가 호출
클래스(class or type) 메서드
  • 클래스명. 클래스 메서드()
  • 타입 메서드 또는 클래스 메서드는 클래스 레벨에서 동작하는 것으로, 클래스의 새로운 인스턴스를 생성하는 것과 같은 동작
  • 타입 메서드는 인스턴스 메서드와 동일한 방법으로 선언하지만 class나 static 키워드를 앞에 붙여서 선언
  • class키워드로 만든 클래스 메서드는 자식 클래스에서 override가 가능하다.
import Foundation

class Animal {
    var dog: String = "강아지"
    var cat: String = "고양이"
    func display() {
        print("좋아하는 동물=\(dog), 싫어하는 동물=\(cat)")
    }
    class func example() {
        print("example은 클래스 메서드 입니다.")
    }
    static func example2() {
        print("example2는 클래스 메서드 입니다.")
    }
}
var animal = Animal()
animal.display() // 인스턴스 메서드는 인스턴스가 호출
Animal.example() // 클래스 메서드는 클래스가 호출
Animal.example2() // 클래스 메서드는 클래스가 호출
클래스와 구조체의 차이 : https://wlqkr.tistory.com/21

출처 : iOS 프로그래밍 기초 한성현 교수님 강의 변형 및 요약 

반응형

'Swift > 문법' 카테고리의 다른 글

Swift 문법 정리 2  (0) 2022.01.07
Swift initializer  (0) 2022.01.07
Swift 클로저(Closure)  (0) 2022.01.06
Swift guard문  (0) 2022.01.05
Swift 문법 정리 1  (0) 2022.01.03