πŸ‘©πŸ»‍πŸ’» iOSun
article thumbnail
[swift] 상속, μ˜€λ²„λΌμ΄λ”©
Swift 2024. 1. 6. 00:58

상속 μƒμ†μ΄λž€? 상속은 였직 ν΄λž˜μŠ€μ—μ„œλ§Œ κ°€λŠ₯ν•˜λ©° λΆ€λͺ¨μ˜ λ©”μ†Œλ“œμ™€ ν”„λ‘œνΌν‹°μ™€ 같은 νŠΉμ„±λ“€μ„ κ·ΈλŒ€λ‘œ λ¬Όλ €λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€. 상속을 μ™œ μ‚¬μš©ν• κΉŒ? 상속은 λΆ€λͺ¨μ˜ νŠΉμ„±μ„ κ·ΈλŒ€λ‘œ 물렀받을 수 있기 λ•Œλ¬Έμ— μ€‘λ³΅λœ μ½”λ“œ μž‘μ„±μ„ 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€. ex) 인간은 고유의 이름, 성별이 μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ A, B, CλΌλŠ” 인간이 있고 각각 인간듀은 고유의 νŠΉμ„±μ„ 가지고 μžˆμ§€λ§Œ κ³΅ν†΅μ μœΌλ‘œ λͺ¨λ‘ 이름과 성별을 가지고 있겠죠? 상속을 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄? → A, B, C λͺ¨λ‘ ν•˜λ‚˜ν•˜λ‚˜ 이름, 성별을 λ„£μ–΄μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. 상속을 μ‚¬μš©ν•œλ‹€λ©΄? → μΈκ°„μ΄λΌλŠ” 클래슀 ν•˜λ‚˜λ₯Ό λ§Œλ“€κ³  A, B, CλŠ” 인간 클래슀λ₯Ό μƒμ†λ§Œ ν•˜λ©΄ λ©λ‹ˆλ‹€. 상속 μ½”λ“œ class Human { var name: String? var gender: String? } ..

article thumbnail
[swift] λ©”μ†Œλ“œ
Swift 2023. 12. 29. 22:27

ν•¨μˆ˜ vs λ©”μ†Œλ“œ λ­” 차이? func ν‚€μ›Œλ“œ 뢙은 건 λ‹€ ν•¨μˆ˜μž…λ‹ˆλ‹€. λ©”μ†Œλ“œλŠ” 클래슀, ꡬ쑰체, μ—΄κ±°ν˜•μ— μ†ν•œ ν•¨μˆ˜λ₯Ό λœ»ν•©λ‹ˆλ‹€. (즉, ν•¨μˆ˜κ°€ 더 큰 κ°œλ…) swiftμ—μ„œ λ©”μ†Œλ“œλŠ” 크게 λ‘κ°€μ§€λ‘œ λ‚˜λ‰©λ‹ˆλ‹€. μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ νƒ€μž… λ©”μ†Œλ“œ λ‘˜μ˜ 큰 차이점은 μΈμŠ€ν„΄μŠ€λ₯Ό 생성해야 ν•˜λƒ μ•ˆν•˜λƒμž…λ‹ˆλ‹€. μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ class Counter { var count = 0 func increment() { count += 1 } } let counter = Counter() // μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ³  counter.increment() // λ©”μ†Œλ“œλ₯Ό μ‹€ν–‰ν•œλ‹€. μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ³  ν•΄λ‹Ή μΈμŠ€ν„΄μŠ€μ—μ„œ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. νƒ€μž… λ©”μ†Œλ“œ class People { class func sayBye() { // 1. 클래슀 λ©”μ†Œλ“œ..

article thumbnail
[swift] 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° (Object Oriented Programming)
Swift 2023. 12. 29. 22:26

객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° (Object Oriented Programming) 객체지ν–₯ν”„λ‘œκ·Έλž˜λ°μ΄λž€? ν•„μš”ν•œ 데이터λ₯Ό 좔상화 μ‹œν‚€κ³  ν–‰μœ„λ₯Ό 가진 객체λ₯Ό λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€. ex) 뢕어빡을 λ§Œλ“€ λ•Œ, 틀이 μ—†λ‹€λ©΄? → λΆ•μ–΄λΉ΅ ν•˜λ‚˜ν•˜λ‚˜ λͺ¨μ–‘을 λ‚΄μ•Όν•©λ‹ˆλ‹€. λ‹€λ₯΄κ²Œ λͺ¨μ–‘이 λ‚˜μ™€μ„œ μ‹€μˆ˜λ₯Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 틀을 μ΄μš©ν•΄ λ§Œλ“ λ‹€λ©΄? → 뢕어빡을 λΉ λ₯΄κ²Œ λ§Œλ“€ 수 있고 λΆ•μ–΄λΉ΅ λͺ¨μ–‘을 λ°”κΎΈκ³  싢을 λ•Œ ν‹€λ§Œ λ°”κΎΈλ©΄ 되기 λ•Œλ¬Έμ— 쉽고 λΉ λ₯΄κ²Œ μ‹€μˆ˜μ—†μ΄ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. λΆ•μ–΄λΉ΅ ν‹€ == 클래슀 λΆ•μ–΄λΉ΅ ν‹€λ‘œ λ§Œλ“  λΆ•μ–΄λΉ΅ == 클래슀의 μΈμŠ€ν„΄μŠ€ μž₯점 개발의 생산성 ν–₯상 → 틀을 λ§Œλ“€μ–΄ λ†“μœΌλ©΄ 찍기만 ν•˜λ©΄ 되기 λ•Œλ¬Έ μœ μ§€λ³΄μˆ˜ 용이 → μˆ˜μ •ν•  λ•Œμ—λ„ 클래슀의 λ‚΄λΆ€ μ½”λ“œλ§Œ μˆ˜μ •ν•˜λ©΄ 되기 λ•Œλ¬Έ 단점 틀을 λ§Œλ“€μ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— → μ½”λ”© λ‚œμ΄λ„..

article thumbnail
[Swift Language Guide] 클래슀 상속과 μ΄ˆκΈ°ν™” (Class Inheritance and Initialization)
Swift 2023. 6. 20. 22:29

ν΄λž˜μŠ€λŠ” ꡬ쑰체와 λ‹€λ₯΄κ²Œ λ©€λ²„μ™€μ΄μ¦ˆ μ΄λ‹ˆμ…œλΌμ΄μ €κ°€ μ—†μŒ ν•„μˆ˜λ‘œ κ΅¬ν˜„ν•΄μ•Ό 함 지정 μƒμ„±μž(Designated Initializer) class Anmimal { let name: String let age: Int init(name: String, age: Int) { self.name = name self.age = age } } λͺ¨λ“  ν”„λ‘œνΌν‹°λ₯Ό μ™„λ²½ν•˜κ²Œ μ΄ˆκΈ°ν™”ν•¨ μ˜΅μ…”λ„ ν”„λ‘œνΌν‹°μ΄κ±°λ‚˜ 기본값을 가진 ν”„λ‘œνΌν‹°λŠ” μ˜ˆμ™Έ λͺ¨λ“  ν΄λž˜μŠ€λŠ” 적어도 1개 μ΄μƒμ˜ 지정 μƒμ„±μžλ₯Ό 가짐 λ°˜λ“œμ‹œ μžμ‹ 클래슀의 지정 μƒμ„±μžλŠ” λΆ€λͺ¨ 클래슀의 지정 μƒμ„±μžλ₯Ό ν˜ΈμΆœν•΄μ•Ό 함 편의 μƒμ„±μž (Convenience Initializers) class Anmimal { let name: String let age: Int init(name: ..

profile on loading

Loading...