객체
객체란 무엇인가
객체는 성질과 할수 있는 행동이 담긴 자료
성질은 변수 , 할수 있는 행동은 함수
클래스 인스턴스
클래스는 객체를 만들수 있는 틀
사람이 라면 말이야 ..
'이름'있어야 하고
'나이'가 있어야 하고
'사는곳'이 있어야 하고
'취미'가 있어야 하고
성질
밥먹기, 운동하기, 잠자기, 취미활동 하기 를 할줄 알아야 해
행동
class Human: #클래스 생성
필드(Field) 객체가 가지고 있는 성질
= 객체가 가지고 있는 변수
class Human :
name = "Bob"
age = 10
human 은 두개의 변수를 추가 할때
human은 두가지 성질을 가진다.
name , age
매서드 (Method) - 짝꿍이 있는 함수 짝꿍은 객체이다. 객체 안에 들어있는 함수를 매써드 라고 함
객체가 할수 있는 행동
- 객체가 할수 있는 함수
class Human:
def exercise(self) :
print("스쿼시")
Human 안에는 exercise라는 메서드가 있고 이것은 human 이 할수 있는 행동을 이야기 한다.
self
메서드 라면 가져야한은 첫번째 매개변수
인스턴스
객체를 만들수 있는 틀(클래스)로 찍어낸 객체
인스턴스 만들기
인스턴스이름 = 클래스 이름()
boddy = Human()
인스턴스의 변수
boddy = Human() # boddy 객체가 있을때
boddy.name #Bob
boddy.age # 10
인스턴스의 메서드
인스턴스.메서드()
boddy = Human()
boddy.exercise() # 스쿼스!
성질과 기능이 담긴 자료, 객체!
객체는 성질과 할 수 있는 일이 담긴 자료입니다. 이 객체를 만들 때 사용하는 틀을 우리는 클래스라고 합니다.
- class 클래스이름: : class를 정의합니다.
class를 정의해보고, 안에 필드와 메서드를 채워서 이 클래스로 찍어낼 인스턴스의 특징을 정의해봅시다.
- 필드 : 객체가 가지는 성질 (변수)
- 메서드 : 객체가 할 수 있는 일(함수)
class Human:
name = ""
age = 0
def exercise(self):
return "운동!"
왜 객체지향 프로그맹인가.
상속, 다형성, 캡슐화를 통해
코드의 재사용이 쉽고 우리 실생활을 더 잘나타낼수 있기 때문이다.!
- class rose : 클래스 rose
- class rose(flower) : 클래스 flower를 상속하는 클래스 rose
- class flower(rose) : 클래스 rose를 상속하는 클래스 flower
'self는 클래스의 메서드가 첫 번째로 가져야 하는 매개변수이며 객체 자기 자신을 나타냅니다.
매개변수의 이름을 self가 아닌 다른 이름으로 지어도 무관하지만, 관습적으로 self로 명명합니다.
class Pet:
attr ="cute"
def cry(self):
return "멍멍!"
class Dog(Pet):
pass
maltese = Dog()
print(maltese.attr)
print(maltese.cry())
상속 : 한클래스의 내용을 다른 클래스가 이어받는 것
다형성 : 같은 모양의 코드가 다른 역할을 하는것
다형성을 통해 유사한 역할을 하는 필드와 메서드를 같은 이름으로 관리할 수 있습니다.
class Animal:
legs = 0
def walk(self):
return ""
class Dog(Animal):
legs =4
def walk(self):
return "살랑살랑"
class Human(Animal):
legs=2
def walk(self):
return "뚜벅뚜벅"
maltese = Dog()
gildong = Human()
print(maltese.walk())
print(gildong.walk())
class Car:
type = "자동차"
horsePower = 100
class Lamborghini(Car):
horsePower = 700
aventador = Lamborghini()
print(aventador.type) #자동차
print(aventador.horsePower) #700
class Human: # Human 클래스 생성!
age = 10
def talk(self):
print(self.age, "살입니다!")