Guidelines

μΊ‘μŠν™”μ™€ λ‹€ν˜•μ„±, 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ 핡심 κ°œλ…

μΊ‘μŠν™”(Encapsulation)와 λ‹€ν˜•μ„±(Polymorphism) μ—­μ‹œ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ 핡심 κ°œλ…μž…λ‹ˆλ‹€.

이번 μˆ˜μ—…μ—μ„œλŠ” μΊ‘μŠν™”μ™€ λ‹€ν˜•μ„±μ˜ κ°œλ…μ„ μ†Œκ°œν•˜κ³ , νŒŒμ΄μ¬μ—μ„œ μ–΄λ–»κ²Œ ν™œμš©ν•˜λŠ”μ§€ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.


μΊ‘μŠν™”λž€?

μΊ‘μŠν™”λŠ” 객체의 μƒνƒœλ₯Ό μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ„둝 λ³΄ν˜Έν•˜λŠ” 것을 λœ»ν•©λ‹ˆλ‹€.

객체 λ‚΄λΆ€μ˜ λ°μ΄ν„°λŠ” μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Όν•  수 μ—†μœΌλ©°, 곡개된 λ©”μ„œλ“œλ₯Ό ν†΅ν•΄μ„œλ§Œ μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이λ₯Ό 톡해 데이터 무결성(λ°μ΄ν„°μ˜ μ •ν™•μ„±κ³Ό 일관성)을 보μž₯ν•˜κ³ , 객체의 μƒνƒœλ₯Ό μ•ˆμ „ν•˜κ²Œ μœ μ§€ν•©λ‹ˆλ‹€.

μΊ‘μŠν™” μ˜ˆμ‹œ
class Car: def __init__(self, speed): self.__speed = speed # speed 속성을 λΉ„κ³΅κ°œλ‘œ μ„€μ •, __λŠ” λΉ„κ³΅κ°œ 속성을 의미 def get_speed(self): return self.__speed # μΊ‘μŠν™”λœ 속성 λ°˜ν™˜ def set_speed(self, speed): if speed > 0: self.__speed = speed # μΊ‘μŠν™”λœ 속성 λ³€κ²½ my_car = Car(50) # 좜λ ₯: 50 print(my_car.get_speed())

μœ„ μ˜ˆμ œμ—μ„œ __speed 속성은 μΊ‘μŠν™”λ˜μ–΄ λΉ„κ³΅κ°œ μƒνƒœμ΄κΈ° λ•Œλ¬Έμ— μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Όν•  수 μ—†μŠ΅λ‹ˆλ‹€.

'__speed' 속성은 get_speed와 set_speed λ©”μ„œλ“œλ₯Ό ν†΅ν•΄μ„œλ§Œ μ‘°μž‘ κ°€λŠ₯ν•©λ‹ˆλ‹€.

my_car.__speed와 같이 속성에 직접 μ ‘κ·Όν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•˜λ―€λ‘œ, λ°μ΄ν„°μ˜ 무결성을 보μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


λ‹€ν˜•μ„±μ΄λž€?

λ‹€ν˜•μ„±μ€ λ™μΌν•œ λ©”μ„œλ“œκ°€ μ—¬λŸ¬ κ°μ²΄μ—μ„œ λ‹€λ₯΄κ²Œ λ™μž‘ν•  수 μžˆλŠ” 것을 λœ»ν•©λ‹ˆλ‹€.

이λ₯Ό 톡해 μ½”λ“œμ˜ μœ μ—°μ„±κ³Ό ν™•μž₯성이 크게 ν–₯μƒλ©λ‹ˆλ‹€.

λΆ€λͺ¨ ν΄λž˜μŠ€μ—μ„œ μ •μ˜ν•œ λ©”μ„œλ“œλ₯Ό μžμ‹ ν΄λž˜μŠ€μ—μ„œ μž¬μ •μ˜ν•˜λŠ” λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©μ€ λ‹€ν˜•μ„±μ˜ λŒ€ν‘œμ μΈ μ˜ˆμ‹œμž…λ‹ˆλ‹€.

λ‹€ν˜•μ„± μ˜ˆμ‹œ
class Animal: def speak(self): return "μ†Œλ¦¬λ₯Ό λ‚Έλ‹€" class Dog(Animal): def speak(self): return "멍멍" class Cat(Animal): def speak(self): return "μ•Όμ˜Ή" animals = [Dog(), Cat()] for animal in animals: # Dog ν΄λž˜μŠ€μ™€ Cat ν΄λž˜μŠ€μ—μ„œ μ˜€λ²„λΌμ΄λ”©ν•œ speak λ©”μ„œλ“œ 호좜 print(animal.speak()) # 좜λ ₯: λ‹€λ₯Έ 쀄에 '멍멍'κ³Ό 'μ•Όμ˜Ή'이 좜λ ₯됨

μœ„ μ˜ˆμ œμ—μ„œ Animal ν΄λž˜μŠ€μ— μ •μ˜λœ speak λ©”μ„œλ“œλŠ” Dog와 Cat ν΄λž˜μŠ€μ—μ„œ 각각 λ‹€λ₯΄κ²Œ λ™μž‘ν•©λ‹ˆλ‹€.

μ΄λŠ” λ‹€ν˜•μ„±μ„ 톡해 같은 λ©”μ„œλ“œ 호좜이 객체에 따라 λ‹€λ₯Έ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Mission
0 / 1

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ μΊ‘μŠν™”μ— λŒ€ν•œ μ„€λͺ…μœΌλ‘œ μ˜³μ€ 것은 λ¬΄μ—‡μΈκ°€μš”?

객체의 μƒνƒœλ₯Ό μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•˜λŠ” 것
객체의 λ©”μ„œλ“œλ₯Ό μ™ΈλΆ€μ—μ„œ λ³€κ²½ν•  수 μžˆλ„λ‘ ν•˜λŠ” 것
객체의 μƒνƒœλ₯Ό μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ„둝 λ³΄ν˜Έν•˜λŠ” 것
λ™μΌν•œ λ©”μ„œλ“œλ‚˜ μ—°μ‚°μžκ°€ μ—¬λŸ¬ κ°μ²΄μ—μ„œ λ‹€λ₯΄κ²Œ λ™μž‘ν•  수 μžˆλ„λ‘ ν•˜λŠ” 것

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result