일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- post
- 앱개발
- 아이폰
- SwiftUI
- API
- 개발
- 회원가입
- java spring
- IOS
- 앱
- mac
- 서버개발
- swagger
- spring
- 통신
- Alamofire
- db
- database
- JavaScript
- 알고리즘
- 백엔드
- Java
- spring boot
- UI
- 개발자
- node
- 백준
- Xcode
- Swift
- Node.js
- Today
- Total
YagSill
IOS 앱 개발 "상속" 본문
안녕하세요 YagSill 입니다!
오늘은 Class의 상속에 대한 개념에 대해 조금 더 알아 보았는데요!
한번 코드로 알아보겠습니다!
일단 저는 StudentAthlete 이라는 "운동부학생" 이라는 class를 만들었구요, 이전에 student라는 class를 상속하고 있는 상태로 만들었습니다.
minimumTrainingTime(기본적인 트레이닝 시간) 을 2시간으로 잡았구요
trainedTime(트레이닝시간) 을 현재는 0으로 설정해 두었습니다.
func train() 함수는 한번 실행될 때 마다 1씩 + 되도록 함수를 만들었습니다!
그리고 난 뒤 athelete1 이라는 변수에 StudentAthelete class(운동부학생)을 넣었습니다.
1) 현재 athelete1.minimumTrainingTime을 알아봅시다 = 위에서 선언한대로 값은 2가 나옵니다.
2) athelete1.train()를 해봅시다 = 위에서 func train() 함수를 정의한대로 train() 함수를 한번 실행할 때 마다 +1을 합니다.
3) athelete1.trianedTIme 을 알아보자 = 처음은 0으로 초기화가 되어 있고, train() 함수를 한번 실행했으니 값은 1이 됩니다.
이렇게 상속을 하게 되면 부모 class의 값들을 사용할 수 있습니다.
하지만 여기서 상속이 쓰이는 부분을 잘 알아 두어야 합니다.
1. Single Responsibility(단일책임)
-> 각 클래스는 한개의 고려사항만 있으면 됩니다. 여러 클래스의 책임을 한 클래스가 다 가질 필요가 없다는 말입니다.
각 클래스는 한가지의 일만 집중해서 할 수 있도록 해야합니다.
2. Type Safety(타입이 분명해야 할 때)
-> 원하는 타입의 값만 받고 싶을 때. 예를들어서 위에서 본 것과 같이 운동부 학생을 뽑는데 미술부, 음악부 학생들이 지원하게 되면 복잡하니 요럴 때 타입을 설정해서 받을 수 있습니다.
3. Extensibility(확장성이 필요한 경우)
-> 클래스 하나로 여러개로 상속받아 각각 다른 방향으로 확장해서 개념을 구체적으로 확장할 수 있습니다.
4. Identity(정체를 파악하기 위해)
-> 이 자식은 어떤 클래스인가? 이런거를 파악할 때 씁니다.
일단 상속을 할지 말지에 대해 여러가지 사항을 생각해보고 상속개념을 사용하라고 합니다.
일단 다양한 경우의 수가 있으니 조심해서 사용해야 할 것 같습니다!
오늘도 즐거운 코딩~!!@!@ 끝@!@!
앙!!! 뇽!!!!
게임해야징~!
'Swift - IOS 앱 개발' 카테고리의 다른 글
IOS Swift 비동기처리란? (0) | 2022.01.04 |
---|---|
Music Player APP 만들기 (0) | 2021.12.27 |
IOS 앱 개발 [상속]? (0) | 2021.08.30 |
IOS 앱 개발 Class 와 Struct의 차이 (0) | 2021.08.26 |
IOS 메소드 (0) | 2021.08.25 |