🌱 SeSAC

[SeSAC] 220713 TIL

taeeekki 2022. 7. 21. 22:51

μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™”

  1. μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”
  2. μ„ μ–Έλ§Œ ν•˜κ³  λ‚˜μ€‘μ— μ΄ˆκΈ°ν™”
  3. μ˜΅μ…”λ„ κ°’μœΌλ‘œ νƒ€μž…μ„ 정해쀄지 아닐지 κ²°μ •

파일 μΆ”κ°€

  • μ‹€μ œ 파일의 κ²½λ‘œμ™€ 관계(Reference)λ₯Ό λŠμ–΄μ£Όμ–΄μ•Ό ν•œλ‹€. (μΆ”κ°€ν•  λ•Œλ‚˜ μ‚­μ œν•  λ•Œ)

Class(클래슀)

Super Class, Sub Class

  • λΆ€λͺ¨-μžμ‹μ˜ κ΄€κ³„λŠ” μƒλŒ€μ μΈ 것이닀.
  • Super Class(λΆ€λͺ¨ 클래슀)
  • Sub Class(μžμ‹ 클래슀) -> Sub Classing(μžμ‹μ„ λ§Œλ“œλŠ” κ³Όμ •)
  • Base Class(μ–΄λ””μ—μ„œλ„ 상속받고 μžˆμ§€ μ•ŠλŠ” 클래슀)

Inheritance

  • λ‹€λ₯Έ ν΄λž˜μŠ€λ‘œλΆ€ν„° 멀버(ν”„λ‘œνΌν‹°λ‚˜ λ©”μ„œλ“œ)λ₯Ό κ°€μ Έλ‹€κ°€ μ“Έ 수 μžˆλŠ”λ° 이λ₯Ό μƒμ†μ΄λΌλŠ” μš©μ–΄λ‘œ λΆ€λ₯Ό 수 μžˆλ‹€.
  • 상속을 받은 클래슀λ₯Ό Sub Class라고 λΆ€λ₯΄κ³ , 상속을 ν•΄μ€€ ν΄λž˜μŠ€λŠ” Super Class이닀.

Override(μž¬μ •μ˜)

  • λΆ€λͺ¨ 클래슀(Superclass)λ‘œλΆ€ν„° 받은 멀버λ₯Ό ν•˜μœ„/μžμ‹ ν΄λž˜μŠ€μ—μ„œ μ›ν•˜λŠ” ν˜•νƒœλ‘œ μž¬μ •μ˜(λ³€κ²½)이 κ°€λŠ₯
  • 상속 받은 멀버λ₯Ό μž¬μ •μ˜ ν•  λ•ŒλŠ” override ν‚€μ›Œλ“œλ₯Ό λΆ™μž„
  • λΆ€λͺ¨ ν΄λž˜μŠ€μ—μ„œ μ •μ˜λœ 멀버λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” super ν”„λ‘œνΌν‹°λ₯Ό μ‚¬μš©ν•΄μ•Ό 함

Struct(ꡬ쑰체)

  • 데이터λ₯Ό κ΅¬μ‘°ν™”ν•΄μ„œ 관리할 λ•Œ μ‚¬μš©
struct Student {
  let name: String
  let studentID: Int
}

Instance(μΈμŠ€ν„΄μŠ€)

  • μ •μ˜ν•œ 클래슀λ₯Ό μ‹€μ œ μ‚¬μš©ν•˜κΈ° μœ„ν•œ ν˜•νƒœλ‘œ μ°μ–΄λ‚΄λŠ” 것
  • 객체λ₯Ό λ§Œλ“€μ–΄λ‚΄λŠ” 것을 의미

Property, Method, Member

  • ν”„λ‘œνΌν‹° : 클래슀 내뢀에 μ„ μ–Έλœ λ³€μˆ˜
  • λ©”μ„œλ“œ : 클래슀 내뢀에 μ„ μ–Έλœ ν•¨μˆ˜
  • 멀버 : 클래슀 λ‚΄λΆ€μ˜ μš”μ†Œλ“€ 톡칭(ν”„λ‘œνΌν‹°, λ©”μ„œλ“œ)

Initializer

  • μ„ μ–Έλ§Œ ν•΄μ£Όκ³  μ΄ˆκΈ°ν™”λ₯Ό ν•΄μ£Όμ§€ μ•ŠμœΌλ©΄ 컴파일 μ—λŸ¬κ°€ λ°œμƒν•˜λŠ” 것은 ν΄λž˜μŠ€μ™€ ꡬ쑰체 μ—­μ‹œ λ§ˆμ°¬κ°€μ§€μ΄λ‹€.
  • 그렇기에 μ΄ˆκΈ°ν™”λ₯Ό ν•΄μ£ΌλŠ” 과정은 맀우 μ€‘μš”ν•˜λ‹€.
  1. μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”
  2. μ΄ˆκΈ°ν™” λ©”μ„œλ“œ λ‚΄μ—μ„œ μ΄ˆκΉƒκ°’ μ§€μ •

Memberwise Initializer (λ©€λ²„μ™€μ΄μ¦ˆ μ΄ˆκΈ°ν™” ꡬ문)

κ΅¬μ‘°μ²΄μ—μ„œλŠ” λͺ¨λ“  ν”„λ‘œνΌν‹° 값을 μ΄ˆκΈ°ν™”ν•˜λŠ” ꡬ문을 μžλ™μœΌλ‘œ μ œκ³΅ν•œλ‹€. 클래슀처럼 μ΄ˆκΈ°ν™” ꡬ문을 μž‘μ„±ν•  ν•„μš”κ°€ μ—†λ‹€.