소스변형1
p10, extension
+p21~22 protocol
protocol Print { }
extension Print {
func HelloWorld() {
print("Hello World!")
}
}
class Test : Print { }
var x = Test()
x.HelloWorld() // 출력 : Hello World!
소스변형2
p10, extension
+p32~33 열거형
enum Compass {
case North
case South
case East
case West
}
extension Compass {
var result : String {
switch self {
case .North:
return "북"
case .South:
return "남"
case .East:
return "동"
case .West:
return "서"
}
}
}
var direction : Compass
direction = .South
print(direction.result) // 출력 : 남
과제2
p28
- 다음과 같은 기능을 전체 하나의 소스로 작성하시오.
- bb()라는 메소드가 하나있는 프로토콜(protocol) B을 만드시오.
bb()메서드는 Int형 값을 매개변수로 받아 Int형으로 리턴하는 메서드이다.
- 클래스 A는 클래스 C라는 부모를 갖는다(C로부터 상속받는다).
- 클래스 A에서 프로토콜 B를 채택하고, 준수하는 소스를 작성하시오.
- bb()메서드는 Int형 값을 매개변수로 받아 두 배한 값을 Int형으로 리턴하는 메서드이다.
- 클래스 A의 인스턴스 a를 만들고 bb를 호출(argument로 3을 입력)하여 결과를 확인하세요.
protocol B{
func bb(_ x : Int) -> Int
}
class C{}
class A:C,B{
func bb(_ x : Int) -> Int{
return x*x
}
}
let a : A = A()
print(a.bb(3)) // 출력 : 9
과제3
p29
상속, overloading, overriding, protocol이 모두 들어간 예제를 작성하시오.
protocol Developer {
func Print()
}
class Starter : Developer {
func Print(){
print("Hello")
}
}
class Master : Starter{
func StarterPrint(){super.Print()}
func StarterPrint(_ x : String){
print(x, terminator: " ")
super.Print()
}
override func Print(){
print("Hello World!")
}
}
let kim : Master = Master()
kim.StarterPrint() // 출력 : Hello
kim.StarterPrint("World") // 출력 : World Hello
kim.Print()// 출력 : Hello World
'잡다한지식 > iOS프로그래밍기초' 카테고리의 다른 글
Mac 환경 개발 (0) | 2021.11.05 |
---|---|
Mac 환경 적응 (0) | 2021.10.31 |
iOS 학습과정(7주차) - Swift 문법 (0) | 2021.10.13 |
iOS 학습과정(6주차) - 과제,소스 (0) | 2021.10.06 |
iOS 학습과정(6주차) - Swift 문법 (0) | 2021.10.05 |