VesselWheel

Extension (확장 - (추가)) 본문

Xcode Study

Extension (확장 - (추가))

JasonYang 2023. 10. 19. 13:17

ex02.playground.zip
0.02MB

import UIKit

 

/* Extension (확장 - (추가))

   처음 작성한 클래스의 내용(멤버변수(속성), 멤버메소드(기능))을 추가함

            ㄴ 클래스, 구조체, 열거형, 기본자료형

 

   overriding: 부모클래스에서 물려받은 메소드를 재정의함

   overloading: 같은 클래스 안에서 같은 이름의 메소드의

                매개변수부를 다르게 해서 구분함

   extension: 다른 이름의 메소드를 추가하는 것

 

 

   상속(inheritance: 확장)     추가(extension)

   클래스에서만 가능함            클래스, 구조체, 열거형, 기본자료형 등에서 사용

   overriding 이 가능         overriding 은 안 되고 새롭게 추가만 가능

 

*/

 

// 속성 추가

// isEven 과  isOdd 는 원래 Int type 에 없는데, 추가함

extension Int{

    var isEven: Bool{

        get{

            return self % 2 == 0

        }

    }

    var isOdd: Bool{

        get{

            return self % 2 == 1

        }

    }

}

var number1: Int = 11

print("number1.isEven :",number1.isEven)

var number2: Int = 10

print("number2.isEven :",number2.isEven)

number1 = 11

print("number1.isOdd :",number1.isOdd)

number2 = 10

print("number2.isOdd :",number2.isOdd)

 

print(15.isEven)

print(15.isOdd)

 

// 기능 추가 전

// Value of type 'Int' has no member 'multiply'

// 20.multiply(by: 2)

 

// 기능 추가 후

extension Int{

    func multiply(by n: Int) -> Int{

        return self * n

    }

}

print("20.multiply(by: 2) :",20.multiply(by: 2))

'Xcode Study' 카테고리의 다른 글

assert / guard  (0) 2023.10.19
Generic  (0) 2023.10.19
형변환 : Type Casting(2)  (1) 2023.10.19
형변환 : (data) type casting  (1) 2023.10.19
protocol  (0) 2023.10.19