λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

CS

[CS] JAVA μ ‘κ·Ό μ œν•œμž(μ ‘κ·Ό μ œμ–΄μž)λž€? μ ‘κ·Όμ œν•œμžμ˜ μ’…λ₯˜

 

🟨 μ ‘κ·Ό μ œν•œμž(Access Modifier)λž€?

: 클래슀 및 μΈν„°νŽ˜μ΄μŠ€ 그리고 이듀이 κ°€μ§€κ³  μžˆλŠ” λ©€λ²„μ˜ 접근을 μ œν•œν•˜κΈ° μœ„ν•œ 역할을 ν•˜λŠ” 녀석

 

🟨 μ ‘κ·Ό μ œν•œμžλ₯Ό μ™œ μ¨μ•Όν•˜λŠ”κ°€?

: μ™ΈλΆ€λ‘œλΆ€ν„° 데이터λ₯Ό λ³΄ν˜Έν•˜κΈ° μœ„ν•¨μ΄λ©° μ™ΈλΆ€μ—λŠ” λΆˆν•„μš”ν•œ, λ‚΄λΆ€μ μœΌλ‘œλ§Œ μ‚¬μš©λ˜λŠ” 뢀뢄을 감좔기 μœ„ν•΄μ„œμ΄λ‹€.

즉, 정보 은닉(data hiding)을 μœ„ν•΄μ„œλΌκ³  λ³Ό 수 μžˆλ‹€.

❓정보 은닉(data hiding)
: μ‚¬μš©μžκ°€ ꡳ이 μ•Œ ν•„μš”κ°€ μ—†λŠ” μ •λ³΄λŠ” μ‚¬μš©μžλ‘œλΆ€ν„° μˆ¨κ²¨μ•Ό ν•œλ‹€λŠ” κ°œλ…μ΄λ‹€.

 

🟨 μ ‘κ·Ό μ œν•œμžμ˜ μ’…λ₯˜

: JAVAμ—λŠ” Private, Default, Protected, Public 총 4κ°€μ§€μ˜ μ ‘κ·Ό μ œν•œμžκ°€ μžˆλ‹€.

 

1. Private

: 클래슀 λ‚΄λΆ€μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯ν•˜λ©°, μ™ΈλΆ€μ—μ„œλŠ” μ ‘κ·Ό ν•  수 μ—†λ‹€.

 

2. Default

: 같은 νŒ¨ν‚€μ§€ λ‚΄μ—μ„œλŠ” μ‚¬μš© κ°€λŠ₯ν•˜μ§€λ§Œ, μ™ΈλΆ€ νŒ¨ν‚€μ§€μ—μ„œλŠ” μ ‘κ·Ό ν•  수 μ—†λ‹€.

μ ‘κ·Όμ œν•œμžμ˜ μˆ˜μ€€μ„ μ„€μ •ν•˜μ§€μ•ŠμœΌλ©΄, κΈ°λ³Έμ μœΌλ‘œλŠ” Default둜 μ μš©λœλ‹€.

 

3. Protected

: 같은 νŒ¨ν‚€μ§€ λ‚΄μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜λ©°, λ‹€λ₯Έ νŒ¨ν‚€μ§€λŠ” 상속관계(λΆ€λͺ¨ν΄λž˜μŠ€ / μžμ‹ν΄λž˜μŠ€) 인 κ²½μš°μ— κ°€λŠ₯ν•˜λ‹€.

 

4. Public

: λͺ¨λ“  νŒ¨ν‚€μ§€μ—μ„œ 아무 μ œν•œμ—†μ΄ μ–΄λ””μ„œλ“  μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€.

 

 

Private < Default < Protected < Public순으둜 λ²”μœ„κ°€ 크며, μ ‘κ·Όμ œν•œμžλ“€μ„ ν‘œλ‘œ μ •λ¦¬ν•˜λ©΄ λ‹€μŒκ³Ό κ°™λ‹€.

μ ‘κ·Ό μ œν•œμž 적용 λŒ€μƒ 클래슀 λ‚΄λΆ€ 동일 νŒ¨ν‚€μ§€ 상속 λ‹€λ₯Έ 클래슀
Private ν•„λ“œ, μƒμ„±μž, λ©”μ†Œλ“œ μ ‘κ·Ό O μ ‘κ·Ό X μ ‘κ·Ό X μ ‘κ·Ό X
Default 클래슀, ν•„λ“œ, μƒμ„±μž, λ©”μ†Œλ“œ μ ‘κ·Ό O μ ‘κ·Ό O μ ‘κ·Ό X μ ‘κ·Ό X
Protected ν•„λ“œ, μƒμ„±μž, λ©”μ†Œλ“œ μ ‘κ·Ό O μ ‘κ·Ό O μ ‘κ·Ό O μ ‘κ·Ό X
Public 클래슀, ν•„λ“œ, μƒμ„±μž, λ©”μ†Œλ“œ μ ‘κ·Ό O μ ‘κ·Ό O μ ‘κ·Ό O μ ‘κ·Ό O

'CS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[CS] JAVAλž€ λ¬΄μ—‡μΌκΉŒ / JAVA의 νŠΉμ§•  (0) 2023.03.12