파이썬은 객체지향언어이다. 그러면 객체지향은 뭐고 절차지향은 뭔가
클래스는 객체의 설계도이며, 객체는 클래스의 인스턴스다.
클래스는 데이터(attributes)와 메서드(methods)로 구성되는데.
데이터는 객체의 상태를 나타내고, 메서드는 객체의 동작을 정의한다.
이러한 객체와 클래스를 사용하여 프로그램을 구조화하고 모듈화할 수 있다!
객체지향 프로그래밍 OOP: object-oriented programming은 우리가 사는 실제 세계가 객체object들로 구성된 것과 비슷하게 소프트웨어도 객체로 구성하는 방법이다. 실제 세계에는 사람, 자동차, 텔레비전, 세탁기 , 냉장고 등의 많은 객체가 존재한다. 객체들은 객체 나름대로 고유한 기능을 수행하면서 다른 객체들과 메시지를 통하여 상호 작용한다.
절차 지행과 객체 지향
절차 지향 프로그래밍 procedural programming 은 프로시저 procedure를 기반으로 하는 프로그래밍 방법이다.
객체 지향 프로그래밍 object-oriented programming은 데이터와 함수를 하나의 덩어리로 묶어서 생각하는 방법이다.
절차지향의 문제점
단점은 서로 관련된 데이터와 함수를 묶을 수가 없다는 점이다. 따라서 절차 지향 방법에서는 데이터가 프로그램의 중요한 부분임에도 불구하고 프로그래머들은 함수 작성에만 신경을 쓰게 된다.
객체란?
객체 object는 속성과 동작을 가진다.
자동차는 메이커나 모델, 색상, 연식, 가격과 같은 속성attribute을 가지고 있다. 또 자동차는 주행할 수 있고 방향을 전환하거나 정지할 수 있다. 이러한 것을 객체의 동작 action이라고 한다.
클래스
객체에 대한 설계도를 클래스class라고 한다. 클래스란 특정한 종류의 객체들을 찍어내는 형틀 template또는 청사진이라고 할 수 있다. 클래스로 부터 만들어지는 객체를 그 클래스의 인스턴스라고 한다.
캡슐화
개발자로서 클래스의 객체를 가지고 작업할 때는 객체가 어떻게 내부적으로 속성을 저장하고 어떻게 메소드들이 구현되는지 알 필요가 없다.
공용 인터페이스만 제공하고 구현 세부 사항을 감추는 것은 캡슐화(encapsulation)이라고 한다.
작성법
# 클래스
- class 클래스 이름:
- def __init__(): #생성자
- def 메소드 이름():... #메소드
# 모든 메소드에 사용 유무와 상관없이 self 파라미터가 첫번째로 들어가야 한다.
class Counter:
# count =0
count_a=0
def __init__(self):
self.count = 0
def increment(self):
self.count+=1
def print_count(self):
print(self.count)
#%%
a= Counter()
a.increment()
a.print_count()
1
a.count_a= 5
#%%
class Counter:
def __init__(self, initValue=0):
self.count= initValue
def increment(self):
self.count+=1
def print_count(self):
print(self.count)
#%%
a = Counter()
a.increment()
a.print_count()
1
b=Counter(100)
b.increment()
b.print_count()
101
'파이썬' 카테고리의 다른 글
도서 입고/대출반납 관리를 위한 키오스크 파이썬 프로그램 실습 (3) | 2023.11.13 |
---|---|
파이썬 class 클래스 (1) | 2023.11.10 |
raw string과 정규식. 파이썬 문자열 중에서.. (1) | 2023.11.09 |
파이썬 파일 읽기 쓰기 (2) | 2023.11.07 |
파이썬 함-수 이야기 (1) | 2023.11.07 |