1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class Book:
 
    # 생성자
    # def __init__(self):
    #        객체가 메모리상에서 만들어질 때 
    #        클래스 안에서 overloading이 안되니 -> 생성자는 하나만 가능
    def __init__(self, t, p):
        print("오버로딩 된 생성자")
        self.title = t  # 보통 생성자에서 멤버변수를 만들어 넣으면서 결정
        self.price = p
        
    def printInfo(self):
        print(self.price, self.title)
        
    # 소멸자(destructor)
    #        객체가 메모리상에서 사라질 때
    def __del__(self):
        print("책 삭제")
 
    # Garbage Collection
    #        그 객체를 가르키는 변수가 없으면 자동 정리
    #        stack 영역 : 프로그램 종료시 정리
 
 
class Human:
 
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
    def showInfo(self):
        print(self.name, self.age)
        
    def __del__(self):
        print("bye")
 
# main #
# b = Book("자바", 10000)
# b.printInfo()
 
 
h1 = Human("홍길동"30)
h1.showInfo()
h2 = Human("홍길동"30)
h2.showInfo()
h3 = h1
h3.showInfo()
h1 = None  # h1의 stack 영역 삭제 아직 h3로 h1에서 만든 heap영역의 사람 객체는 불러올 수 있음
h3 = None  # h3의 stack 영역이 삭제 되면서 h1에서 만든 사람 객체를 가리키는 변수가 사라지면서 정리됨 
cs

'Python' 카테고리의 다른 글

13. Python - import2, if __name__ == "__main__":  (0) 2021.02.23
12. Python - import_1  (0) 2021.02.23
10. Python - OOP (객체지향)  (0) 2021.02.23
9. Python - 가위바위보 게임  (0) 2021.02.23
8. Python - if문, for문, while문  (0) 2021.02.23

BELATED ARTICLES

more