πŸ“™ Java

[Java] ν•„λ“œμ™€ λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©

ji_wonna 2022. 9. 2. 23:45

클래슀의 ꡬ성 μš”μ†Œ

ν΄λž˜μŠ€λŠ” ν•„λ“œ(field), λ©”μ„œλ“œ(method), μƒμ„±μž(constructor), μ΄λ„ˆ 클래슀(inner class)둜 κ΅¬μ„±λœλ‹€.

ꡬ성 μš”μ†Œ 쀑 μƒμ„±μžλ₯Ό μ œμ™Έν•œ ν•„λ“œ, λ©”μ„œλ“œ, μ΄λ„ˆ ν΄λž˜μŠ€λŠ” 클래슀의 멀버(member)라고 λΆ€λ₯Έλ‹€.

 

ν•„λ“œ

μžλ°”μ—μ„œ λ³€μˆ˜λŠ” 클래슀 λ³€μˆ˜, μΈμŠ€ν„΄μŠ€ λ³€μˆ˜, 지역 λ³€μˆ˜λ‘œ λ‚˜λ‰œλ‹€.

이 μ€‘μ—μ„œ ν•„λ“œλΌκ³  λΆˆλ¦¬λŠ” 것은 클래슀 λ³€μˆ˜μ™€ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ΄λ‹€.

ν•„λ“œλŠ” ν΄λž˜μŠ€μ— ν¬ν•¨λœ λ³€μˆ˜λ₯Ό μ˜λ―Έν•˜λ©° 객체의 속성을 μ •μ˜ν•  λ•Œ μ‚¬μš©λœλ‹€.

ν•„λ“œ λ³€μˆ˜λŠ” νž™ λ©”λͺ¨λ¦¬μ— μ €μž₯되며 νž™μ—λŠ” 빈 곡간이 μ €μž₯될 수 μ—†κΈ° λ•Œλ¬Έμ— κ°•μ œλ‘œ μ΄ˆκΈ°ν™”λœλ‹€.

객체가 μ†Œλ©Έν•˜μ§€ μ•ŠλŠ” ν•œ ν•„λ“œ λ³€μˆ˜λŠ” μ‚­μ œλ˜μ§€ μ•ŠλŠ”λ‹€.

 

1. 클래슀 λ³€μˆ˜ (cv, class variable)

  • static ν‚€μ›Œλ“œμ™€ ν•¨κ»˜ μ„ μ–Έλ˜λ©° λͺ¨λ“  μΈμŠ€ν„΄μŠ€κ°€ 값을 κ³΅μœ ν•œλ‹€.
  • 클래슀 내뢀에 κ³΅ν†΅λœ μ €μž₯곡간을 κ³΅μœ ν•œλ‹€.
  • μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ§€ μ•Šμ•„λ„ 클래슀λͺ….클래슀 λ³€μˆ˜λͺ…μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€.

 

2. μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ (iv, instance variable)

  • 클래슀 λ³€μˆ˜μ™€λŠ” 달리 static ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€
  • 독립적인 μ €μž₯곡간을 κ°–λŠ”λ‹€.
  • μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•œ μ΄ν›„μ—λ§Œ μ‚¬μš©ν•  수 μžˆλ‹€.

 

3. 지역 λ³€μˆ˜ (lv, local variable)

  • ν•„λ“œμ— ν¬ν•¨λ˜μ§€ μ•Šκ³  λ©”μ„œλ“œ 내에 μ‘΄μž¬ν•˜λŠ” λͺ¨λ“  λ³€μˆ˜λ₯Ό 가리킨닀.
  • μŠ€νƒ λ©”λͺ¨λ¦¬μ— μ €μž₯λ˜μ–΄ λ©”μ„œλ“œ μ’…λ£Œμ™€ ν•¨κ»˜ μ†Œλ©Έν•œλ‹€.
  • μŠ€νƒ λ©”λͺ¨λ¦¬λŠ” κ°•μ œλ‘œ μ΄ˆκΈ°ν™”λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 지역 λ³€μˆ˜λŠ” μ„ μ–Έ μ‹œμ— λ°˜λ“œμ‹œ μ΄ˆκΈ°ν™”λ₯Ό ν•΄μ€˜μ•Ό ν•œλ‹€.
  • ν•œλ™μ•ˆ μ‚¬μš©λ˜μ§€ μ•ŠλŠ” 경우 가상 머신에 μ˜ν•΄ μžλ™μœΌλ‘œ μ‚­μ œλœλ‹€.

 


 

λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©(Method Overloading)

μ˜€λ²„λ‘œλ”©μ΄λž€ ν•˜λ‚˜μ˜ 클래슀 μ•ˆμ— 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œλ₯Ό μ—¬λŸ¬ 개 μ •μ˜ν•˜λŠ” κ²ƒμœΌλ‘œ 객체지ν–₯의 νŠΉμ§• 쀑 λ‹€ν˜•μ„±κ³Ό 연관이 μžˆλ‹€.
μ£Όμ˜ν•  점은 λ©”μ„œλ“œλͺ…이 κ°™λ‹€κ³  무쑰건 μ˜€λ²„λ‘œλ”©μ΄ λ˜μ§„ μ•ŠλŠ”λ‹€λŠ” 것이닀.

 

μ˜€λ²„λ‘œλ”©μ˜ 성립 쑰건

λ©”μ„œλ“œλͺ…이 κ°™μ•„μ•Ό ν•˜κ³  λ§€κ°œλ³€μˆ˜μ˜ κ°œμˆ˜λ‚˜ νƒ€μž…μ„ λ‹€λ₯΄κ²Œ μ •μ˜ν•΄μ•Ό ν•œλ‹€.
이 두 가지 쑰건을 λͺ¨λ‘ μΆ©μ‘±ν•΄μ•Ό μ˜€λ²„λ‘œλ”©μ΄ μ„±λ¦½ν•œλ‹€.

 

μ˜€λ²„λ‘œλ”©μ˜ μž₯점

ν•˜λ‚˜μ˜ λ©”μ„œλ“œλ‘œ μ—¬λŸ¬ 가지 경우의 수λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€. ex) println()

'πŸ“™ Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Java] 좔상화(Abstraction)  (1) 2022.09.07
[Java] λ‹€ν˜•μ„±(Polymorphism)  (0) 2022.09.07
[Java] μΊ‘μŠν™” πŸ’Š  (0) 2022.09.06
[Java] 상속(Inheritance)  (0) 2022.09.06
[Java] μƒμ„±μžμ™€ λ‚΄λΆ€ 클래슀  (4) 2022.09.05