Guidelines

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°(OOP) μ†Œκ°œ

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°(Object-Oriented Programming, OOP)은 ν”„λ‘œκ·Έλž˜λ° 방법둠 쀑 ν•˜λ‚˜λ‘œ μ‹€μ„Έκ³„μ˜ μ‚¬λ¬Όμ΄λ‚˜ κ°œλ…μ„ ν”„λ‘œκ·Έλž¨ λ‚΄μ˜ 객체둜 ν‘œν˜„ν•˜κ³ , 이듀 객체 κ°„μ˜ μƒν˜Έμž‘μš©μ„ 톡해 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.


객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ 핡심 κ°œλ…

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ€ 데이터(속성, Property)와 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” κΈ°λŠ₯(λ©”μ†Œλ“œ, Method)을 객체둜 λ¬Άμ–΄μ„œ κ΄€λ¦¬ν•©λ‹ˆλ‹€. 핡심 κ°œλ…μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • 객체(Object): κ°μ²΄λŠ” 데이터(속성)와 κ·Έ 데이터에 λŒ€ν•œ μ‘°μž‘μ„ μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜(λ©”μ„œλ“œ)λ₯Ό κ²°ν•©ν•œ κ²ƒμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μžλ™μ°¨λΌλŠ” κ°μ²΄λŠ” 색상, λͺ¨λΈ, 속도 λ“±μ˜ 속성과 κ°€μ†ν•˜κΈ°, μ •μ§€ν•˜κΈ° λ“±μ˜ λ©”μ„œλ“œλ₯Ό κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

  • 클래슀(Class): ν΄λž˜μŠ€λŠ” 객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•œ ν…œν”Œλ¦Ώ λ˜λŠ” μ„€κ³„λ„μž…λ‹ˆλ‹€. ν΄λž˜μŠ€λŠ” νŠΉμ • μœ ν˜•μ˜ 객체듀이 κ³΅μœ ν•˜λŠ” 속성과 λ©”μ„œλ“œλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. ν΄λž˜μŠ€λ‘œλΆ€ν„° μƒμ„±λœ 객체λ₯Ό μΈμŠ€ν„΄μŠ€(Instance)라고 ν•©λ‹ˆλ‹€.

  • 상속(Inheritance): ν•œ 클래슀(λΆ€λͺ¨ 클래슀)의 속성과 λ©”μ„œλ“œλ₯Ό λ‹€λ₯Έ 클래슀(μžμ‹ 클래슀)κ°€ λ¬Όλ €λ°›μ•„ μ‚¬μš©ν•  수 있게 ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이λ₯Ό 톡해 μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

  • μΊ‘μŠν™”(Encapsulation): 객체의 데이터(속성)λ₯Ό μ™ΈλΆ€λ‘œλΆ€ν„° 숨기고, 객체의 λ©”μ„œλ“œλ§Œμ„ 톡해 이 데이터에 μ ‘κ·Όν•  수 있게 ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이λ₯Ό 톡해 μ™ΈλΆ€λ‘œλΆ€ν„° 객체λ₯Ό λ³΄ν˜Έν•©λ‹ˆλ‹€.

  • λ‹€ν˜•μ„±(Polymorphism): λ‹€ν˜•μ„±μ€ 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œκ°€ λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œ λ‹€λ₯Έ 행동을 ν•  수 있게 ν•˜λŠ” νŠΉμ„±μž…λ‹ˆλ‹€. 이λ₯Ό 톡해 μ½”λ“œμ˜ μœ μ—°μ„±κ³Ό μž¬μ‚¬μš©μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

ν΄λž˜μŠ€μ™€ 객체 μ‚¬μ΄μ˜ κ΄€κ³„λŠ” μžλ™μ°¨ 섀계도와 μžλ™μ°¨, μš”λ¦¬ λ ˆμ‹œν”Όμ™€ μš”λ¦¬μ™€ 같이 생각할 수 μžˆμŠ΅λ‹ˆλ‹€.


OOP μ‚¬μš© μ˜ˆμ‹œ

클래슀 μ‚¬μš© μ˜ˆμ‹œ
class Animal: # Animal 클래슀 μ •μ˜ def __init__(self, name): # μƒμ„±μž λ©”μ„œλ“œ self.name = name # name 속성 μ •μ˜ def speak(self): # speak λ©”μ„œλ“œ μ •μ˜ pass class Dog(Animal): # Dog 클래슀 μ •μ˜ def speak(self): # speak λ©”μ„œλ“œ μž¬μ •μ˜ return f"{self.name}κ°€ 멍멍!" # name 속성 μ‚¬μš© # 객체 생성 및 μ‚¬μš© my_dog = Dog("바둑이") print(my_dog.speak()) # 좜λ ₯: 바둑이가 멍멍!

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result