κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ΄λ?
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(Object-Oriented Programming, OOP)μ νμ€ μΈκ³μ μ¬λ¬Ό
κ³Ό μΆμμ κ°λ
μ νλ‘κ·Έλ¨ μμμ κ°μ²΄(Object)
λ‘ νννλ νλ‘κ·Έλλ° λ°©λ²λ‘ μ
λλ€.
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ νλ‘κ·Έλ¨μ μμ±κ³Ό λμμ κ°μ§ λ 립λ κ°μ²΄λ‘ ꡬμ±νκ³ , μ΄ κ°μ²΄λ€ κ°μ μνΈμμ©μ ν΅ν΄ νλ‘κ·Έλ¨μ ꡬνν©λλ€.
νμ΄μ¬μ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μ§μνλ μΈμ΄λ‘, ν΄λμ€(Class)
μ κ°μ²΄(Object)
λΌλ κ°λ
μ μ¬μ©ν΄ νλ‘κ·Έλ¨μ ꡬμ±ν©λλ€.
μ΄λ² μμ μμλ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ κΈ°μ΄ κ°λ μ νμ΅νκ³ , νμ΄μ¬μμ μ΄λ₯Ό μ΄λ»κ² νμ©νλμ§ μ΄ν΄λ³΄κ² μ΅λλ€.
ν΄λμ€μ κ°μ²΄, κ·Έκ² λκΉμ?
νμ€ μΈκ³λ₯Ό νλ‘κ·Έλ¨μΌλ‘ νννκΈ°
μ°λ¦¬κ° λ§€μΌ μ¬μ©νλ μλμ°¨, μ± , μ»΄ν¨ν°μ κ°μ μ¬λ¬Όλ€μ κ°κΈ° λ€λ₯Έ νΉμ§κ³Ό κΈ°λ₯μ κ°μ§κ³ μμ΅λλ€.
νλ‘κ·Έλλ°μμλ μ΄μ κ°μ μ¬λ¬Όμ νννκΈ° μν΄ ν΄λμ€μ κ°μ²΄λΌλ κ°λ μ μ¬μ©ν©λλ€.
ν΄λμ€
μλμ°¨λ μ± κ³Ό κ°μ μ¬λ¬Όμ μ€κ³λμ κ°μ μν μ ν©λλ€.
μ΄ μ€κ³λλ ν΄λΉ μ¬λ¬Όμ΄ μ΄λ€ νΉμ§(μμ±)
μ κ°κ³ , μ΄λ€ κΈ°λ₯(λ©μλ)
μ μννλμ§λ₯Ό μ μν©λλ€.
κ°μ²΄
ν΄λμ€λ₯Ό λ°νμΌλ‘ λ§λ€μ΄μ§ μ€μ μ¬λ¬Όμ λλ€.
μλ₯Ό λ€μ΄ μλμ°¨ ν΄λμ€(μ€κ³λ)λ‘ λ§λ€μ΄μ§ κ°μ²΄λ μ€μ μλμ°¨λ₯Ό λνλ΄λ©°, μλμ°¨μ λΈλλ, λͺ¨λΈ, μ°μ λ±μ μμ±μ κ°μ΅λλ€.
κ°μ²΄μ μ€κ³λ, ν΄λμ€
ν΄λμ€λ νλ‘κ·Έλλ°μμ μλ‘μ΄ λ°μ΄ν° νμ μ μ μνλ©°, ν΄λμ€λ₯Ό ν΅ν΄ μμ±λλ κ°μ²΄μ μμ±κ³Ό λμμ μ μν©λλ€.
μλ μ½λλ μλμ°¨λ₯Ό λνλ΄λ κ°λ¨ν ν΄λμ€λ₯Ό μ μν μμμ λλ€.
class Car: def __init__(self, brand, model, year): # μλμ°¨μ λΈλλ, λͺ¨λΈ, μ°μ μμ± μ μ self.brand = brand self.model = model self.year = year # μλμ°¨μ μμ§μ μΌλ λ©μλ def start_engine(self): print(f"{self.brand} {self.model}μ μμ§ μλ") # μλμ°¨μ μμ§μ λλ λ©μλ def stop_engine(self): print(f"{self.brand} {self.model}μ μμ§ κΊΌμ§")
μ μ½λμμ Car ν΄λμ€λ μλμ°¨μ λΈλλ, λͺ¨λΈ, μ°λ λ±μ μμ±μ μ μνκ³ , μμ§μ μΌκ±°λ λλ κΈ°λ₯μ μ 곡ν©λλ€.
ν΄λμ€μμ __init__
λ©μλλ κ°μ²΄κ° μμ±λ λ μλμΌλ‘ νΈμΆλλ©°, κ°μ²΄μ μμ±μ μ΄κΈ°νν©λλ€.
self
λ ν΄λμ€μ λ©μλμμ μ¬μ©λλ 첫 λ²μ§Έ μΈμλ‘, ν΄λΉ λ©μλλ₯Ό νΈμΆν κ°μ²΄ μμ μ κ°λ¦¬ν΅λλ€.
κ°μ²΄: μ€κ³λλ₯Ό λ°νμΌλ‘ λ§λ€μ΄μ§ μ€μ μ¬λ¬Ό
μ΄μ μ μν ν΄λμ€μ μ€κ³λλ₯Ό λ°νμΌλ‘ κ°μ²΄λ₯Ό λ§λ€μ΄ λ³΄κ² μ΅λλ€.
κ°μ²΄λ₯Ό λ§λλ κ²μ μλμ°¨ μ€κ³λλ₯Ό λ°νμΌλ‘ μ€μ 'μλμ°¨'λ₯Ό λ§λλ κ²κ³Ό κ°μ΅λλ€.
νλ‘κ·Έλ¨μμλ ν΄λμ€λ₯Ό λ°νμΌλ‘ κ°μ²΄λ₯Ό μμ±νκ³ , μ΄ κ°μ²΄λ₯Ό ν΅ν΄ ν΄λμ€μμ μ μν μμ±κ³Ό λμμ μ¬μ©ν©λλ€.
class Car: def __init__(self, brand, model, year): self.brand = brand self.model = model self.year = year def start_engine(self): print(f"{self.brand} {self.model}μ μμ§ μλ") def stop_engine(self): print(f"{self.brand} {self.model}μ μμ§ κΊΌμ§") # Car ν΄λμ€μ μ€κ³λλ₯Ό λ°νμΌλ‘ # λΈλλλ‘ 'λΈλλA', λͺ¨λΈλ‘ 'λͺ¨λΈB', μ°μμΌλ‘ 2024μΈ # my_car κ°μ²΄λ₯Ό λ§λ¦ my_car = Car("λΈλλA", "λͺ¨λΈB", 2024) # μΆλ ₯: λΈλλA λͺ¨λΈBμ μμ§ μλ my_car.start_engine() # μΆλ ₯: λΈλλA λͺ¨λΈBμ μμ§ κΊΌμ§ my_car.stop_engine() # μλμ°¨μ μ°μ μΆλ ₯ print(my_car.year) # 2024 μΆλ ₯
μ¬κΈ°μ my_car
λ Car ν΄λμ€μμ λ§λ€μ΄μ§ νλμ κ°μ²΄
λ‘ 'λΈλλA', 'λͺ¨λΈB', μ°μ 2024λ₯Ό κ°λ μλμ°¨λ₯Ό λνλ
λλ€.
μ΄ κ°μ²΄λ start_engine
κ³Ό stop_engine
λ©μλλ₯Ό μ¬μ©νμ¬ μ€μ λ‘ λμν μ μμ΅λλ€.
λν κ°μ²΄μ μμ±μΈ year
λ₯Ό my_car.year
μ κ°μ΄ μ κ·Όν΄ κ°μ νμΈν μ μμ΅λλ€.
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μ¬μ©νλ©΄ 무μμ΄ μ’μκΉμ?
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μ¬μ©νλ©΄ μ½λμ μ¬μ¬μ©μ±μ΄ κ°μ νκ³ , νλ‘κ·Έλ¨μ λ Όλ¦¬μ λͺ¨λνκ° μ¬μμ§λλ€.
μλ₯Ό λ€μ΄ μλμ°¨ ν΄λμ€λ₯Ό μ μνλ©΄, μ΄ ν΄λμ€λ₯Ό λ°νμΌλ‘ μ¬λ¬ μ’ λ₯μ μλμ°¨ κ°μ²΄λ₯Ό λ§λ€ μ μμ΅λλ€.
κ° κ°μ²΄λ μλμ°¨μ λΈλλ, λͺ¨λΈ, μ°μ λ±μ μμ±μ κ°κ³ μμΌλ©°, μ΄ κ°μ²΄λ€μ κ°μμ λ 립μ μΈ λμμ μνν©λλ€.
ν΄λμ€λ κ°μ²΄μ μ€κ³λμ κ°λ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result