<1>

a는 객체이다. 

a는 이 클래스의 인스턴스이다. 

클래스로 만든 객체를 인스턴스라고 부르기도 하는데, 
객체 a는 클래스 Cookie의 인스턴스이다. 와 같이
인스턴스는 객체와 클래스의 관계를 설명할 때 사용하는 단어이다. 

클래스 안에 구현된 함수는 메서드라고도 부른다. 

 

 

 

 

<2>

클래스 함수에서

메서드의 첫 번째 매개변수 self에는 메서드를 호출한 객체 a가 자동으로 전달된다. 

class FourCal:
def __init__(self, first, second):
    self.first = first
    self.second = second

a=FourCal(3,1)을 수행하면 
__init__메서드의 매개변수에는 
self:a
first:3
second:1
이렇게 값이 전달 됨.

 

요기서 3과 1은 객체에 생성되는 객체만의 변수니까 객체변수 또는 속성이라고 한다.

객체변수는 다른 객체의 변수와는 상관없는 독립적인 변수이다. 

 

<3>

인스턴스의 객체 변수의 초깃값을 설정하는 방법: 생성자 메서드(__init__)

 

 

setdata 메서드를 쓰는 것보다는 생성자를 구현하는 것이 더 안전하다. 

생성자(constructor)란 객체가 생성될 때 자동으로 호출되는 메서드를 의미한다.

파이썬 메서드명으로 __init__를 사용하면 이 메서드는 생성자가 된다.

예시)

def __init__(self, first, second):

self.first = first

self.second = second

 

이런 건데, setdate메서드랑 이름만 다르고 생긴 것은 똑같다. 다만 이제 이 메서드는 생성자로 인식되어 객체가 생성될 때 자동으로 호출된다.

 

 

 

 

 

<4>

클래스의 상속: 어떤 클래스가 다른 클래스의 기능을 물려받을 수 있도록 하는 것.

 


class MoreFourCal(FourCal):
괄호 속에 상속할 클래스 이름을 넣으면 됨. 상속할 클래스의 모든 기능 사용 가능

*메서드 오버라이딩: 
상속한 클래스에 있는 메서드를 동일한 이름, 다른 기능으로 덮어쓰기

(예를들어 원래 div라는 메서드는 0으로 나누면 오류가 났는데 , if문을 추가하여 0으로 나누면 0값이 나오는 함수로 바꿀 때 쓸 수 있다.)

 

 

 

 

 

 

<4>
클래스변수는 클래스에 대하여 선언, 클래스 변수 변하면 클래스로 만든 모든 객체에서 변수가 변함. 

+ Recent posts