πŸ”Ά [μ˜€λ¦„μΊ ν”„_4일차] μΈμŠ€ν„΄μŠ€μ™€ 클래슀

손세은·2023λ…„ 11μ›” 30일

였브젝트λ₯Ό λ„μΆœν•˜λŠ” μˆœμ„œ

  • μ˜€λΈŒμ νŠΈκ°€ κ°€μ§€κ³  μžˆμ„ λ§Œν•œ 속성, λ˜λŠ” λ™μž‘μ„ 생각해 멀버 λ³€μˆ˜μ™€ ν•¨μˆ˜λ‘œ μ •μ˜
  • 였브젝트λ₯Ό 가상세계에 λ„μΆœ, λ™μž‘μ‹œν‚€κΈ°

μš©μ–΄μ •λ¦¬

  • 였브젝트(object): ν˜„μ‹€ μ„Έκ³„μ˜ λͺ¨λ“  객체
  • 클래슀(class): 였브젝트λ₯Ό 가상세계 용으둜 ꡬ체화 ν•œ 것 (λΆ•μ–΄λΉ΅ν‹€)
  • μΈμŠ€ν„΄μŠ€(instance): 클래슀λ₯Ό ν™œμš© β†’ λ©”λͺ¨λ¦¬ 상에 λ§Œλ“€μ–΄ λ‚Έ 것 (λΆ•μ–΄λΉ΅)

ν΄λž˜μŠ€μ™€ λ©€λ²„λ³€μˆ˜μ˜ 넀이밍 μ»¨λ²€μ…˜

  • class λͺ… : Hero, MonsterInfo β‡’ Pascal, 단어 맨 μ²˜μŒμ€ λŒ€λ¬Έμž
  • field λͺ… : level, items, itemList β‡’ camel, 졜초 단어 μ΄μ™Έμ˜ 단어 맨 μ²˜μŒμ€ λŒ€λ¬Έμž
  • method λͺ… : Hero, MonsterInfo β‡’ camel, 졜초 단어 μ΄μ™Έμ˜ 단어 맨 μ²˜μŒμ€ λŒ€λ¬Έμž

클래슀 μ •μ˜μ— λ”°λ₯Έ 효과

  • μ •μ˜ν•œ 클래슀둜 μΈμŠ€ν„΄μŠ€λ₯Ό 생성 ν•  수 μžˆλ‹€.
  • μƒˆλ‘œμš΄ 데이터 νƒ€μž…μ˜ 이용 κ°€λŠ₯ν•΄μ§„λ‹€.
  • 클래슀λ₯Ό μ •μ˜ν•˜λ©΄ 이용 κ°€λŠ₯ν•œ νƒ€μž…μ˜ μ’…λ₯˜κ°€ 점점 λŠ˜μ–΄λ‚¨!
Hero hero = Hero('hero', 100);
  • λ©”λͺ¨λ¦¬μ— 올렀 μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜λ©΄ ν΄λž˜μŠ€μ— μ •μ˜λœ ν•„λ“œ λ³€μˆ˜μ™€ ν•¨μˆ˜μ˜ μ‚¬μš©μ΄ λͺ¨λ‘ κ°€λŠ₯ν•˜λ‹€.
Hero hero = Hero('hero', 100);

hero.attack();
hero.run();
hero.sit();
hero.fallDown();
hero.sleep();

ν•™μŠ΅ 정리

μΈμŠ€ν„΄μŠ€μ™€ 클래슀

  • μΈμŠ€ν„΄μŠ€μ™€ ν΄λž˜μŠ€λŠ” μ™„μ „νžˆ λ‹€λ₯Έ 것이닀.
  • ν˜„μ‹€μ„Έκ³„ = 였브젝트 β†’ 가상세계 = μΈμŠ€ν„΄μŠ€
  • μΈμŠ€ν„΄μŠ€ν‹‘ μƒμ„±ν•˜κΈ° μœ„ν•œ 틀이 λ°”λ‘œ ν΄λž˜μŠ€λ‹€.

ν•„λ“œμ™€ λ©”μ„œλ“œ

  • ν΄λž˜μŠ€μ—μ„œλŠ” 속성 β†’ ν•„λ“œ, λ™μž‘ β†’ λ©”μ„œλ“œλ‘œ μ„ μ–Έν•œλ‹€.
  • final 이 뢙은 ν•„λ“œλŠ” μƒμˆ˜ ν•„λ“œλ‘œ, 값이 λΆˆλ³€ν•œλ‹€.

클래슀 νƒ€μž…

  • 클래슀λ₯Ό μ •μ˜ν•˜λ©΄, κ·Έ 클래슀 νƒ€μž…μ˜ aλ₯Ό μ„ μ–Έν•  수 μžˆλ‹€.
  • a λ³€μˆ˜λŠ” κ·Έ 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό 담을 수 μžˆλ‹€

μΈμŠ€ν„΄μŠ€ν™”

  • new μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄ ν΄λž˜μŠ€λ‘œλΆ€ν„° μΈμŠ€ν„΄μŠ€λ₯Ό 생성(Dart μ—μ„œλŠ” μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€.)
  • a λ³€μˆ˜μ— μΈμŠ€ν„΄μŠ€κ°€ λ‹΄κ²¨μžˆμ„ λ•Œ, a.ν•„λ“œλͺ…, λ˜λŠ” a.λ©”μ„œλ“œλͺ…()으둜 κ·Έ μΈμŠ€ν„΄μŠ€μ˜ ν•„λ“œλ‚˜ λ©”μ„œλ“œμ˜ 이용이 κ°€λŠ₯ν•˜λ‹€.
profile
νž™μŠ€ν„° κ°œλ°œμžκ°€ λ λž˜μš”

0개의 λŒ“κΈ€