Object Oriented Programming (OOP)
객체지향프로그래밍
클래스와 인스턴스 : 클래스는 객체를 생성하기 위한 청사진
클래스를 정의하는 속성과 동작 (attribute, method)
class Car:
def __init__(self,model,color):
self.model = model
self.color = color
self.speed=0
def accelerate(self):
self.speed += 10
def brake(self):
self.speed -= 10
def get_speed(self):
print(self.speed)
my_car = Car("소나타","빨간색")
print(my_car.color)
my_car.accelerate()
my_car.accelerate()
my_car.accelerate()
my_car.brake()
예시에서 알수 있는 것
-> 각 인스턴스에 따라서 속성값이 다르게 설정이 가능
class Animal:
def __init__(self,name, age):
self.name = name
self.age=age
def speak(self):
print("The animal speaks")
class Dog(Animal):
def __init__(self,name,age,breed):
super().__init__(name,age)
self.breed = breed
def speak(self):
print("멍멍")
class Cat(Animal):
def __init__(self,name,age,color):
super().__init__(name,age)
self.color = color
def speak(self):
print("야옹")
cute_dog = Dog("존","9","포메라니안")
cute_dog.speak()
cute_cat = Cat("나비","7",'white')
cute_cat.speak()
class Shape:
def __init__(self,name):
self.name = name
def get_area(self):
return self.area
class Circle(Shape):
def __init__(self,name,radius):
super().__init__(name)
self.radius = radius
def get_area(self):
self.area = self.radius * self.radius * 3.14
print(self.area)
class Rectangle(Shape):
def __init__(self,name, length, width):
super().__init__(name)
self.length = length
self.width = width
def get_area(self):
self.area = self.width * self.length
print(self.area)
myCircle = Circle("원1",5)
myCircle.get_area()
myRectangle = Rectangle("사각형",3,4)
myRectangle.get_area()