Guidelines

μΊ‘μŠν™”λ‘œ 속성과 λ©”μ†Œλ“œλ₯Ό ν•˜λ‚˜λ‘œ λ¬ΆλŠ” 방법

μΊ‘μŠν™”(Encapsulation)λŠ” 객체의 데이터(속성)와 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” λ©”μ„œλ“œλ₯Ό ν•˜λ‚˜λ‘œ λ¬ΆλŠ” 것을 λ§ν•©λ‹ˆλ‹€.

이λ₯Ό 톡해 객체 λ‚΄λΆ€μ˜ μ„ΈλΆ€ κ΅¬ν˜„μ„ 숨기고, μ™ΈλΆ€μ˜ 잘λͺ»λœ μ ‘κ·ΌμœΌλ‘œλΆ€ν„° 데이터λ₯Ό λ³΄ν˜Έν•  수 μžˆμŠ΅λ‹ˆλ‹€.

νŒŒμ΄μ¬μ—μ„œλŠ” μΊ‘μŠν™”λ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ 속성 이름 μ•žμ— __λ₯Ό λΆ™μ—¬μ„œ private μ†μ„±μœΌλ‘œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

μΊ‘μŠν™” μ˜ˆμ‹œ
class ClassName: # μƒμ„±μž def __init__(self): # private 속성 self.__private_attr = 0

μœ„ μ½”λ“œμ—μ„œ __private_attrλŠ” private μ†μ„±μœΌλ‘œ, 클래슀 μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Όν•  수 μ—†μŠ΅λ‹ˆλ‹€.

private 속성을 μ •μ˜ν•  λ•ŒλŠ” 밑쀄(_)을 2개 μ‚¬μš©ν•˜λŠ” 것이 κ΄€λ‘€μž…λ‹ˆλ‹€.


μΊ‘μŠν™”μ˜ μ—­ν• 

객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μΊ‘μŠν™”λŠ” λ‹€μŒκ³Ό 같은 역할을 ν•©λ‹ˆλ‹€.

  • μΈν„°νŽ˜μ΄μŠ€ 제곡: μΈν„°νŽ˜μ΄μŠ€(Interface)λŠ” μ„œλ‘œ λ‹€λ₯Έ μ‹œμŠ€ν…œμ΄λ‚˜ 객체 κ°„μ˜ μƒν˜Έ μž‘μš©μ„ μœ„ν•œ 접점을 λœ»ν•©λ‹ˆλ‹€. μΊ‘μŠν™”λ₯Ό 톡해 객체 λ‚΄λΆ€κ°€ μ–΄λ–»κ²Œ λ™μž‘ν•˜λŠ”μ§€ μ•Œ ν•„μš” 없이, 제곡된 λ©”μ„œλ“œλ₯Ό 톡해 객체와 μƒν˜Έμž‘μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 데이터 보호: 객체의 μ€‘μš”ν•œ 데이터λ₯Ό μ™ΈλΆ€μ˜ 잘λͺ»λœ μ ‘κ·ΌμœΌλ‘œλΆ€ν„° μ•ˆμ „ν•˜κ²Œ λ³΄ν˜Έν•©λ‹ˆλ‹€.


μΊ‘μŠν™” μ‚¬μš© μ˜ˆμ‹œ

μ•„λž˜ μ½”λ“œ μ˜ˆμ‹œλŠ” 은행 κ³„μ’Œλ₯Ό ν‘œν˜„ν•˜λŠ” Account 클래슀λ₯Ό μ •μ˜ν•˜κ³ , μΊ‘μŠν™”λ₯Ό 톡해 κ³„μ’Œμ˜ μž”μ•‘μ„ μ•ˆμ „ν•˜κ²Œ κ΄€λ¦¬ν•©λ‹ˆλ‹€.

μΊ‘μŠν™” μ˜ˆμ‹œ
class Account: def __init__(self, balance): # private 속성 self.__balance = balance # μž…κΈˆ λ©”μ„œλ“œ def deposit(self, amount): if amount > 0: self.__balance += amount return "μž…κΈˆ κΈˆμ•‘μ΄ μœ νš¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€." # μž”μ•‘ 확인 λ©”μ„œλ“œ def get_balance(self): return f"ν˜„μž¬ μž”μ•‘: {self.__balance}원" # κ³„μ’Œ 생성, 초기 μž”μ•‘ 10000원 account = Account(10000) # 5000원 μž…κΈˆ account.deposit(5000) # μž”μ•‘ 확인 print(account.get_balance())

이 μ˜ˆμ œμ—μ„œ __balanceλŠ” private λ³€μˆ˜λ‘œ μ„€μ •λ˜μ–΄ μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Όν•  수 μ—†μŠ΅λ‹ˆλ‹€.

λŒ€μ‹  depositκ³Ό get_balance λ©”μ„œλ“œλ₯Ό 톡해 이 λ³€μˆ˜λ₯Ό μ•ˆμ „ν•˜κ²Œ μ‘°μž‘ν•˜κ±°λ‚˜ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

Mission
0 / 1

객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μΊ‘μŠν™”λŠ” 객체 λ‚΄λΆ€μ˜ μ„ΈλΆ€ κ΅¬ν˜„μ„ κ³΅κ°œν•œ μƒνƒœλ‘œ λ‘λŠ” 것을 μ˜λ―Έν•œλ‹€.

O
X

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result