본문 바로가기
iOS

[Swift] Class, Structure

by 꿈나무 김땡땡 2020. 7. 3.

출처

앱 12개를 만들며 배우는 Swift4 & iOS11 아이폰 iOS 개발 강좌

https://www.inflearn.com/course/swift4-%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8-ios-%EA%B0%9C%EB%B0%9C/dashboard

 

앱 12개를 만들며 배우는 Swift4 & iOS11 아이폰 iOS 개발 강좌 - 인프런

Swift4 를 이용해 여러개의 앱을 만들어 보는 iOS 개발강좌 입니다. 기본적인 내용을 빠르게 학습하고, 여러 실용적인 예제들로 지식을 자신을 것으로 만들 수 있는 강좌 입니다. 최대한 빠르고, 효

www.inflearn.com

위치

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

댓글