'타입 메서드'에 해당되는 글 2건

  1. 2021.01.27 클래스
  2. 2021.01.27 구조체

클래스

Swift/문법 2021. 1. 27. 17:17

클래스

- 클래스는 구조체와 유사함

- 구조체는 값 타입, 클래스는 참조 타입

- Swift의 클래스는 다중 상속이 안됨

 

 

프로퍼티 및 메서드

class Sample {

var mutableProperty: Int = 100 // 가변 프로퍼티

let immutableProperty: Int = 100 // 불변 프로퍼티

 

static var typeProperty: Int = 100 // 타입 프로퍼티

 

// 인스턴스 메서드

func instanceMethod() {

print("instance method")

}

 

 

타입 메서드

* 재정의 불가 타입 메서드 - static

static func typemethod() {

print("type method - static")

}

 

* 재정의 가능 타입 메서드 - class

class func classMethod() {

print("type method - class")

}

 

 

클래스 사용

var mutableReference: Sample = Sample()

 

mutableReference.mutableProperty = 200

 

let immutableReference: Sample = Sample()

 

immutableReference.mutableProperty = 200

 

import Foundation

struct Student {
    var name: String = "unknown"
    var 'class' = String = "Swift"
    
    // 타입 메서드
    static func selfIntroduce() {
        print("학생 타입 입니다")
    }
    
    // 인스턴스 메서드
    func selfIntroduce() {
        print("저는 \(self.class)반 \(name)입니다")
    }
}

Student.selfIntroduce() // 학생 타입 입니다

var khon: Student = Student()
khon.name = "khon"
khon.class = "스위프트"
khon.selfIntroduce() // 저는 스위프트반 khon입니다

let khon3: Student = Student()
khon3.name = "khon3"
khon3.selfIntroduce() // 저는 Swift반 unknown입니다

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

값 타입과 참조 타입(value type / reference type)  (0) 2021.01.27
열거형(enum)  (0) 2021.01.27
구조체  (0) 2021.01.27
옵셔널 추출(Optional Unwrapping)  (0) 2021.01.27
옵셔널(Optional)  (0) 2021.01.27
Posted by khon98
,

구조체

Swift/문법 2021. 1. 27. 16:59

struct 이름 {

구현부

}

 

 

프로퍼티 및 메서드

- 메서드는 구조체 안에 들어가 있는 함수

- 어떤 타입 안에 들어가 있는 변수를 프로퍼티라고 보면 됨

- 타입 안에 들어가 있는 함수를 메서드라고 보면 됨

 

struct Sample {

var mutableProperty: Int = 100   // 값을 변경할 수 있는 가변 프로퍼티

let immutableProperty: Int = 100   // 값을 변경할 수 없는 불변 프로퍼티

 

static var typeProperty: Int = 100   // 타입 프로퍼티

 

// 인스턴스 메서드

func instanceMethod() {

print("instance method")

}

 

// 타입 메서드

static func typeMethod() {

print("type method")

}

 

 

구조체 사용

1. 가변 인스턴스

var mutable: Sample = Sample()

 

2. 불변 인스턴스

let immutable: Sample = Sample()

 

3. 타입 프로퍼티 및 메서드

Sample.typeProperty = 300

Sample.typeMethod()   // type method

 

 

* 학생 구조체

import Foundation

struct Student {
    var name: String = "unknown"
    var 'class' = String = "Swift"
    
    // 타입 메서드
    static func selfIntroduce() {
        print("학생 타입 입니다")
    }
    
    // 인스턴스 메서드
    func selfIntroduce() {
        print("저는 \(self.class)반 \(name)입니다")
    }
}

Student.selfIntroduce() // 학생 타입 입니다

var khon: Student = Student()
khon.name = "khon"
khon.class = "스위프트"
khon.selfIntroduce() // 저는 스위프트반 khon입니다

let khon3: Student = Student()

// 불변 인스턴스이므로 프로퍼티 값 변경 불가
// 컴파일 오류 발생
// khon3.name = "khon3"
khon3.selfIntroduce() // 저는 Swift반 unknown입니다

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

열거형(enum)  (0) 2021.01.27
클래스  (0) 2021.01.27
옵셔널 추출(Optional Unwrapping)  (0) 2021.01.27
옵셔널(Optional)  (0) 2021.01.27
반복문  (0) 2021.01.27
Posted by khon98
,