은닉성D06πŸ”°

μ΅œμ„±μ§„Β·2023λ…„ 1μ›” 30일
0

Java

λͺ©λ‘ 보기
12/32

은닉성

1. μ€λ‹‰μ„±μ΄λž€?

  • λ©€λ²„λ³€μˆ˜λ‚˜ λ©”μ„œλ“œκ°€ 객체에 λ…ΈμΆœλ˜μ§€ μ•Šλ„λ‘ μ„€μ •ν•˜λŠ” 기법
  • 객체λ₯Ό μ‚¬μš©ν•˜λŠ” 츑의 μ‹€μˆ˜λ‘œ μΈν•œ κΈ°λŠ₯의 μ˜€μž‘λ™μ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄,
    클래슀의 일뢀λ₯Ό μˆ¨κΈ°λŠ” 처리λ₯Ό λ§ν•œλ‹€.

2. μ μš©λ°©λ²•

  • λ³€μˆ˜μ˜ μ΄λ¦„μ΄λ‚˜ λ©”μ„œλ“œ μ΄λ¦„μ•žμ— "μ ‘κ·Ό ν•œμ •μž"λ₯Ό μ§€μ •ν•œλ‹€.(퍼블릭 ν”„λΌμ΄λ² μ΄νŠΈ λ‘κ°œκ°€ μ€‘μš”0
  • public
    • λͺ¨λ“  κ³³μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€.
    • 일반적으둜 λͺ¨λ“  λ©”μ„œλ“œ μ•žμ— λͺ…μ‹œν•œλ‹€.(ν”„λ‘œκ·Έλž¨ μ‹œμž‘μ μ€ 무쑰건 νΌλΈ”λ¦­μœΌλ‘œ)
  • private
    • 클래슀 μ•ˆμ—μ„œλ§Œ μ‚¬μš©κ°€λŠ₯ν•˜κ³ , 객체λ₯Ό 톡해 μ ‘κ·Όν•  수 μ—†λ‹€.
    • μΌλ°˜μ μ„ λͺ¨λ“  λ©€λ²„λ³€μˆ˜ μ•žμ— λͺ…μ‹œν•œλ‹€.
  • protected
    • ν˜„μž¬ 클래슀 λ‚΄μ˜ λ‹€λ₯Έ μžμ›μ΄λ‚˜, 같은 νŒ¨ν‚€μ§€ μ•ˆμ—
      μ‘΄μž¬ν•˜λŠ” ν΄λž˜μŠ€μ™€ ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€.
    • 잘 μ‚¬μš©νžˆμ§€ μ•ŠλŠ”λ‹€.
  • default
    • μ ‘κ·Ό ν•œμ •μžλ₯Ό λͺ…μ‹œν•˜μ§€ μ•Šμ€ 경우.
    • ν˜„μž¬ 클래슀 λ‚΄μ˜ λ‹€λ₯Έ μžμ›μ΄λ‚˜ 동일 νŒ¨ν‚€μ§€ λ‚΄μ˜ λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€.
    • 잘 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

3. getter, setter

  • λ©€λ²„λ³€μˆ˜κ°€ μ€λ‹‰λœ ν˜•νƒœλ‘œ μ„ μ–Έλœ 경우 ν”„λ‘œκ·Έλž¨μ˜ κ°€μž₯ 근본적인 λͺ©μ μΈ
    데이터에 μ ‘κ·Όν•˜λŠ” 방법이 μ‚¬λΌμ§€λ―€λ‘œ λ©”μ„œλ“œλ₯Ό ν†΅ν•œ κ°„μ ‘μ μœΌλ‘œ μ ‘κ·Όν•˜λŠ” 방법이 λ§ˆλ ¨λ˜μ–΄μ•Ό ν•œλ‹€.
  • getter, setterλŠ” μ€λ‹‰λœ λ©€λ²„λ³€μˆ˜μ— κ°„μ ‘μ μœΌλ‘œ μ ‘κ·Όν•˜κΈ° μœ„ν•˜μ—¬
    μ •μ˜λœ λ©”μ„œλ“œλ“€μ„ μ˜λ―Έν•˜λŠ” μš©μ–΄μ΄λ‹€.
    • getter : μ€λ‹‰λœ λ©€λ²„λ³€μˆ˜μ˜ 값을 λ¦¬ν„΄ν•˜κΈ° μœ„ν•œ λ©”μ„œλ“œ
    • setter : νŒŒλΌλ―Έν„°λ‘œ μ „λ‹¬λœ 값을 λ©€λ²„λ³€μˆ˜μ— λ³΅μ‚¬ν•˜κΈ° μœ„ν•œ λ©”μ„œλ“œ

String userName

  • getter
String getUserName()
return Stringκ°’;
  • setter
void setUserName(String userName){
this.userName = userName;
}

int userAge

  • getter
int getUseAge()
return intκ°’;
  • setter
void setUserAge(int userAge){
this.userAge = userAge;
}

  • "get","set" 접두사 뒀에 λ³€μˆ˜μ΄λ¦„μ„ 첫 κΈ€μžκ°€ λŒ€λ¬ΈμžμΈ ν˜•νƒœλ‘œ λͺ…μ‹œ
  • getterλŠ” μ—°κ²°λœ λ©€λ²„λ³€μˆ˜μ˜ 데이터 νƒ€μž…μ„ λ¦¬ν„΄ν˜•μœΌλ‘œ λͺ…μ‹œ
  • setterλŠ” μ—°κ²°λœ λ©€λ²„λ³€μˆ˜μ˜ 데이터 νƒ€μž…μ„ νŒŒλΌλ―Έν„° ν˜•μœΌλ‘œ λͺ…μ‹œ

4. ν΄λž˜μŠ€μ— μ ‘κ·Ό ν•œμ •μžλ₯Ό μ§€μ •ν•œ 경우

  • public
    • 객체 생성이 κ°€λŠ₯ν•˜λ‹€.
    • μ„œλ‘œλ‹€λ₯Έ μ†ŒμŠ€μ½”λ“œμ— μ •μ˜λœ 클래슀 끼리도 객체 생성이 κ°€λŠ₯ν•˜λ‹€.
  • private -> ν΄λž˜μŠ€μ— μ μš©λΆˆκ°€
  • protected -> ν΄λž˜μŠ€μ— μ μš©λΆˆκ°€
  • default
    • λ™μΌν•œ μ†ŒμŠ€μ½”λ“œμ— μ •μ˜λœ 클래슀 끼리만 객체둜 생성 κ°€λŠ₯ν•˜λ‹€.
    • μ§€κΈˆκΉŒμ§€ 예제 ν˜•νƒœ. 이제 μ•ˆμ“Έκ±°μž„

5. μžλ°”λΉˆμ¦ˆ(javaBeans)

-μœ„μ—μ„œ ν•œκ²ƒλ“€ λ§ν•˜λŠ”κ±°μž„

  • μžλ°”μ–Έμ–΄μ—μ„œ μ‚¬μš©ν•˜λŠ” 볡합적인 데이터 ν‘œν˜„μ˜ μ΅œμ†Œλ‹¨μœ„λ‘œμ„œ,
    μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•œ μ»΄ν¬λ„ŒνŠΈ(κ΅¬μ„±μš”μ†Œ)λ₯Ό 생성할 수 μžˆλ‹€.
  • μžλ°”λΉˆμ¦ˆ ν΄λž˜μŠ€λ‘œμ„œ μž‘λ™ν•˜κΈ° μœ„ν•΄μ„œ,
    κ°μ²΄ν΄λž˜μŠ€λŠ” λͺ…λͺ…법, 생성법 그리고 행동에 κ΄€λ ¨λœ 일련의 κ΄€λ‘€λ₯Ό λ”°λΌμ•Όλ§Œ ν•œλ‹€.
profile
λ§ˆλΆ€λ¦¬μž…λ‹ˆλ‹€

0개의 λŒ“κΈ€