본문 바로가기

카테고리 없음

python-9

객체 

 

객체란 무엇인가

 

객체는 성질과 할수 있는 행동이 담긴 자료  

 

성질은 변수 , 할수 있는 행동은 함수

 

클래스 인스턴스

 

클래스는 객체를 만들수 있는 틀

 

사람이 라면 말이야 ..

 

'이름'있어야 하고

'나이'가 있어야 하고

'사는곳'이 있어야 하고

'취미'가 있어야 하고

 

성질

 

밥먹기, 운동하기, 잠자기, 취미활동 하기 를 할줄 알아야 해 

 

행동 

 

 

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, "살입니다!")