출처
앱 12개를 만들며 배우는 Swift4 & iOS11 아이폰 iOS 개발 강좌
위치
iBooks > swift 5 검색
Structures and Classes 부분
내용
- 목적 : flexible한 구조 만들기
1. Class(클래스), Structure(구조체)
- property : 상수, 변수 / method : function
- class, structure는 1개의 파일 안에 만들어서 관리한다.
- Class는 상속, 형 변환, Reference Counting 가능
class someClass {
}
struct someStructure {
}
Instance 만들기
- let someRes = Resolution()
2. Property
- stored property : 값을 저장해서 사용
- computed property : 값을 계산해서 사용 (get, set 사용)
Property Observer
- 값이 바뀌면 알려줌
- willSet, didSet 사용
3. Inheritance (상속)
Subclassing
- class Car: Vehicle { }
- Car라는 클래스는 Vehicle 클래스 상속 받음
Override
- 상위 클래스의 method를 재정의(수정) 해서 사용
4. Initialization (초기화)
- 초기값 세팅 필요
Initializer (생성자)
- init() { } 으로 호출
예제
1. Class
class Vehicle {
var currentSpeed = 0.0 // initialization. stored property
var description: String {
return "Traveling at \(currentSpeed) miles per hour"
} // computed property
func makeNoise() {
print("noiseless")
}
}
let someVehicle = Vehicle() // instance 만들기
someVehicle.currentSpeed = 1.0
print(someVehicle.description)
someVehicle.makeNoise()
// inheritance
class Bicycle: Vehicle {
var hasBasket = false
}
let someBicycle = Bicycle()
someBicycle.hasBasket = true
someBicycle.currentSpeed = 15.0
print(someBicycle.description)
print(someBicycle.hasBasket)
// inheritance + override
class Tandem: Bicycle {
var currentNumberOfPassengers = 0
override var description: String {
return "Traveling at \(currentSpeed) miles per hour, number of passenger : \(currentNumberOfPassengers)"
}
}
let someTandem = Tandem()
someTandem.hasBasket = true
someTandem.currentNumberOfPassengers = 2
someTandem.currentSpeed = 22.0
print("Tandem : \(someTandem.description)")
// method override
class Train: Vehicle {
override func makeNoise() {
print("Choo Choo")
}
}
let someTrain = Train()
someTrain.makeNoise()
// override + initialization
// init()은 모든 class에 자동으로 생김(Vehicle에도) --> override 해줘야 함
class Car: Vehicle {
var gear = 1
override init() {
print("Car")
}
init(newGear: Int) {
gear = newGear
}
}
let someCar = Car()
let someCar2 = Car(newGear: 5)
print(someCar2.gear)
2. Structure
var name = ["Park","Choi","Kim","Lee"]
var age = [3,4,5,6]
var height = [40,50,60,70]
print(name[0], age[0], height[0]) // 불편해!
// structure
struct Student {
var name: String
var age: Int
var height: Int
}
var student1 = Student(name: "Park", age: 3, height: 40) // 관리도 호출도 쉽다
var student2 = Student(name: "Choi", age: 4, height: 50)
print(student1.name, student1.age, student1.height)
'iOS' 카테고리의 다른 글
[Swift] 스위프트 실전 프로젝트 1. 도서 관리 프로그램 만들기(1) (0) | 2020.07.03 |
---|---|
[Swift] Optional (0) | 2020.07.03 |
[Swift] Enumeration (0) | 2020.07.03 |
[Swift] Function (0) | 2020.07.03 |
[Swift] If, Switch 문 (0) | 2020.07.03 |
댓글