λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ‹œλ„/ꡭ비지원

[D+57] μžλ°”ν”„λ‘œκ·Έλž˜λ°2 (정보은닉과 μΊ‘μŠν™”, 클래슀 λ³€μˆ˜μ™€ 클래슀 λ©”μ†Œλ“œ)

by πŸ‡λ°•λ΄‰λ΄‰πŸ‡ 2022. 12. 9.

 

 

ꡭ비지원 D+57

-  μžλ°”ν”„λ‘œκ·Έλž˜λ°2 -

 


 

정보은닉과 μΊ‘μŠν™”

• 정보은닉

정보은닉은 클래슀의 λ°μ΄ν„°λ‚˜ κΈ°λŠ₯을 μˆ¨κΈ°κ±°λ‚˜ κ³΅κ°œν•˜λŠ” 객체지ν–₯의 νŠΉμ„±μ„ μ˜λ―Έν•œλ‹€.

 

ν•„μš”μ„±

- λ³΄μ•ˆμ„± : 곡개λ₯Ό ν•˜μ§€ μ•Šμ•„μ•Ό ν•  λ°μ΄ν„°μ˜ 보호

- μ‚¬μš©μ„± : κ³΅κ°œν•œ λ°μ΄ν„°λ‚˜ κΈ°λŠ₯λ“€λ§Œ μ‚¬μš©

- 일관성 : 정해진 λ°©μ‹μœΌλ‘œλ§Œ 데이터λ₯Ό μ ‘κ·Ό

- ν™•μž₯μ„± : 클래슀의 ν™•μž₯μ‹œ 정보은닉을 기반으둜 ν™•μž₯(상속 λ©”μΉ΄λ‹ˆμ¦˜)

 

μ •λ³΄μ€λ‹‰μ˜ 방법 (Access-Level Modifier)

 

• μΊ‘μŠν™”

- κ΄€λ ¨μžˆλŠ” 데이터와 λ©”μ†Œλ“œλ₯Ό λ¬Άμ–΄ 클래슀λ₯Ό μ‘°μ§ν•˜λŠ” 객체지ν–₯의 νŠΉμ„±μ΄λ‹€.

- μΊ‘μŠν™”λŠ” 정보은닉과 ν•¨κ»˜ 이루어진닀.

- μΊ‘μŠν™”λŠ” 완성이 μ•„λ‹Œ μ΅œμ„ μ˜ κ΄€μ μœΌλ‘œ μ ‘κ·Όν•˜μ—¬μ•Ό ν•œλ‹€.

 

μœ μ˜μ‚¬ν•­

단일 λͺ©μ μ„± : ν•˜λ‚˜μ˜ λͺ©μ (μ—­ν• )을 μˆ˜ν–‰ν•˜λ„λ‘ 클래슀λ₯Ό 쑰직

- 정보은닉 : 정보은닉과 ν•¨κ»˜ κ΅¬ν˜„λœλ‹€.

- μœ μ§€λ³΄μˆ˜μ„± : μœ μ§€λ³΄μˆ˜μ‹œ 뢄석 및 변경을 μ‰½κ²Œ ν•˜λ„λ‘ κ΅¬ν˜•

 

μΊ‘μŠν™”κ°€ 생긴 κ³Όμ •

 

 


ν΄λž˜μŠ€λ³€μˆ˜μ™€ 클래슀 λ©”μ†Œλ“œ

• static

- λ©”λͺ¨λ¦¬μ˜ 할당을 μ „μ—­μ˜μ—­μ— ν•˜κΈ° μœ„ν•œ ν‚€μ›Œλ“œ

- μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ’…λ£Œν•  λ•Œ κΉŒμ§€ μ‘΄μž¬ν•œλ‹€. (전역접근이 κ°€λŠ₯)

- νž™μ΄λ‚˜ μŠ€νƒ λ©”λͺ¨λ¦¬ μ˜μ—­ν•˜κ³  μ•„λ¬΄λŸ° 상관이 μ—†λ‹€.

- μ ‘κ·Όν•  λ•Œ 클래슀λͺ…λ§Œμ„ μ΄μš©ν•œλ‹€. (λͺ¨λ“  λ³€μˆ˜λŠ” class에 μ†Œμ†λ˜μ–΄μ•Ό ν•˜λŠ” μžλ°”μ˜ νŠΉμ„±μƒ 클래슀λͺ…을 ν†΅ν•΄μ„œ μ ‘κ·Όν•œλ‹€)

 

• 클래슀 λ³€μˆ˜

- static을 μ΄μš©ν•˜μ—¬ μ„ μ–Έλœ Attribute

- μ „μ—­μ˜μ—­μ— μœ„μΉ˜ν•œλ‹€.

- 클래슀의 μΈμŠ€ν„΄μŠ€μ™€ μ „ν˜€ 상관이 μ—†λ‹€.

- μ ‘κ·Όμ‹œ 클래슀λͺ…을 μ΄μš©ν•œλ‹€.

 

• 클래슀 λ©”μ†Œλ“œ

- static으둜 μ„ μ–Έν•œ λ©”μ†Œλ“œ

- μ „μ—­μ˜μ—­μ— μœ„μΉ˜ν•œλ‹€.

- 클래슀의 μΈμŠ€ν„΄μŠ€μ™€ μ „ν˜€ 상관이 μ—†λ‹€.

- μ ‘κ·Όμ‹œ 클래슀λͺ…을 μ΄μš©ν•œλ‹€.

- thisκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

 

λ°˜μ‘ν˜•

λŒ“κΈ€