chapter9. Package

κΉ€ν˜„μš°Β·2024λ…„ 5μ›” 2일
0

java

λͺ©λ‘ 보기
9/12
post-thumbnail

πŸ’» νŒ¨ν‚€μ§€λž€?

λ§Žμ€ ν΄λž˜μŠ€λ“€μ„ μ²΄κ³„μ μœΌλ‘œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 도ꡬ이닀.
ν΄λž˜μŠ€λ“€μ΄ λ§Žμ•„μ§€κ³  ν”„λ‘œκ·Έλž¨μ΄ 컀질수둝 같은 μ΄λ¦„μ˜ ν΄λž˜μŠ€κ°€ μ‘΄μž¬ν•  κ°€λŠ₯성이 μžˆλ‹€.

μ΄λ•Œ 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•˜λŠ” namespace의 κ°œλ…μ΄ package이닀.

πŸ“” namespace

namespaceλž€ ν”„λ‘œκ·Έλž¨μ—μ„œ μ„œλ‘œ λ‹€λ₯Έ μ‹λ³„μž(λ³€μˆ˜,ν•¨μˆ˜ν΄λž˜μŠ€ λ“±μ˜ 이름) κ°„μ˜ μΆ©λŒμ„ λ§‰κΈ°μœ„ν•œ 도ꡬ이닀.

Strμ΄λΌλŠ” 클래슀λ₯Ό 2개 λ§Œλ“€μ—ˆλ‹€κ³  ν•΄λ³΄μž.
μ΄λ•Œ Str κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄μ„œ 각자 λ‹€λ₯Έ namespace에 λ„£μ–΄μ€ŒμœΌλ‘œ 각 Str의 μΆ©λŒμ„ 막고
λ‹€λ₯Έ μ‘΄μž¬λΌλŠ” 것을 μ•Œλ €μ€€λ‹€.

πŸ“” μžλ°”μ—μ„œλŠ”?

μžλ°”μ—μ„œλŠ” packageλ₯Ό μ‚¬μš©ν•œλ‹€.
packageλŠ” 파일 μ£Όμ†Œμ™€ λ˜‘κ°™μ΄ 섀정을 ν•΄μ•Όν•œλ‹€.

예λ₯Ό λ“€μ–΄ study_java/c 에 hi.java λΌλŠ” μžλ°” 파일이 μžˆλ‹€λ©΄
νŒ¨ν‚€μ§€λŠ” package study_java.c; 라고 μ„ μ–Έλ˜μ–΄μ•Όν•œλ‹€.

λ˜ν•œ importλ₯Ό 톡해 λ‹€λ₯Έ μžλ°” νŒŒμΌμ— μ‘΄μž¬ν•˜λŠ” 클래슀λ₯Ό λΆˆλŸ¬μ˜¬μˆ˜μžˆλ‹€.
packageμ—μ„œ 썼던 μ£Όμ†Œ κ·ΈλŒ€λ‘œ μž‘μ„±ν›„ λ§ˆμ§€λ§‰μ— μ–΄λ–€ μžλ°” νŒŒμΌμ„ μ›ν•˜λŠ”μ§€λ§Œ μ“°λ©΄ λœλ‹€.
import νŒ¨ν‚€μ§€.경둜.μžλ°”νŒŒμΌμ΄λ¦„; (.javaλŠ” 뢙이지 μ•ŠλŠ”λ‹€.)

λ§Œμ•½ ν•΄λ‹Ή νŒ¨ν‚€μ§€μ— μžˆλŠ” λͺ¨λ“  μžλ°” νŒŒμΌμ„ μ›ν•œλ‹€λ©΄
import νŒ¨ν‚€μ§€.경둜.*;을 ν•΄μ£Όλ©΄ λœλ‹€.

πŸ’» μ ‘κ·Όμ œμ–΄μž

μ ‘κ·Ό μ œμ–΄μžλŠ” 클래슀,λ³€μˆ˜,λ§€μ„œλ“œ λ“±μ˜ 접근을 μ œμ–΄ν•˜λŠ” 역할을 ν•œλ‹€.
총 4가지가 μ‘΄μž¬ν•œλ‹€.

1.public
- λˆ„κ΅¬λ‚˜ μ‚¬μš©κ°€λŠ₯
2.protected
- 상속받은 클래슀 + 같은 νŒ¨ν‚€μ§€μ•ˆμ— μžˆλŠ” κ²½μš°μ—λ§Œ μ‚¬μš©κ°€λŠ₯
3.(package private)
- 같은 νŒ¨ν‚€μ§€ μ•ˆμ— μžˆλŠ” κ²½μš°μ—λ§Œ μ‚¬μš©κ°€λŠ₯, 
  μ•žμ— 아무것도 μ•ˆλΆ™μ΄λ©΄ μžλ™μœΌλ‘œ (package private)
4.private
- 동일 클래슀 λ‚΄μ—μ„œλ§Œ μ‚¬μš©κ°€λŠ₯
profile
학생

0개의 λŒ“κΈ€