ch06. 클래스 - 3. 객체지향과 절차지향
3. 객체지향과 절차지향
- 절차지향 (구조적 프로그래밍):
- 데이터 구조와 그 데이터를 변화 시키는 알고리즘으로 구성
- 하나의 코드안에 다 집어넣음, 순차적(아마도)
- 객체지향 :
- 객체들이 메시지를 통하여 통신함으로써 => 원하는 결과를 얻는다.
- 각 객체는 고유의 데이터와 데이터를 처리할 수 있는 메소드로 구성
- (클래스, 함수 같이 따로 기능과 변수(데이터,내용)을 갖고 있다가 해당 기능 필요하면 불러서 씀, 아마도)
- 사전적 더 자세한 설명:
- OOP : object-oriented-programming
- 컴퓨터 프로그래밍 패러다임 중 하나이다.
- 기존, 절차지향 프로그래밍 : 프로그램 -> 명령어의 목록으로 보는 시각
- 객체지향 프로그래밍 : 프로그램 -> 객체 (여러개의 독립된 단위) 들의 모임으로 보는 시각
- 객체 - 객체 : 메시지 주고받음, 데이터를 처리할 수 있음.
- 장점 :
- 프로그램 더 유연하고 변경이 용이하게 만듦 -> 대규모 소프트웨어 개발에 용이하다.
- 프로그래밍 더 쉽게 배울 수 있다.
- 소프트웨어 개발과 보수를 간편하게 한다.
- 보다 직관적인 코드 분석을 가능하게 한다.
- 단점 :
- 지나친 프로그램 객체화 : 실제 세계의 모습을 그대로 반영하지 못한다.
- python 의 모든 것이 객체이다!!
- string, list, int 등등... 모두 객체! 따라서 객체지향 프로그래밍!
- 따라서 문자열(string) 에 문자열.upper 등 / 정수형.type() 등 뒤에 함수 호출이 가능했던 것이다!
[실습을 해보자]
class human: # 클래스 (틀) 만듬 <변수 + 메소드>
# 클래스 메소드 -> (self, ...) 첫번째 매개변수 클래스 메소드 자체: self => 나중에 변수 만들때 전역변수로 사용할 수 있게끔 만들때 사용 (self.변수이름)
def __init__(self, height, age): # 초기화 -> 주로 변수 초기화
self.height = height
self.age = age
def how_old(self):
print(self.age, "살 입니다")
def how_tall(self):
print(self.height, 'cm 입니다')
def __del__(self): # 객체 삭제될때 실행
print('삭제되었다')
seunghyun = human(180,31) # 클래스 객체 생성
print(seunghyun.height) # 클래스 객체로 멤버변수 접근
print(seunghyun.age)
seunghyun.how_old() # 클래스 객체로 메소드(함수) 점근
del seunghyun # 객체 아이예 삭제
# 이후에 사용하려하면 없다 나온다.
* 필수 삽입 링크 : http://bit.ly/3Y34pE0
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
<사진 2장>
> 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'패스트캠퍼스_컴공전공필수+인공지능 > 0원 챌린지' 카테고리의 다른 글
2/27(월) 파이썬 - 클래스5 (0) | 2023.02.27 |
---|---|
2/26(일) 파이썬 - 클래스4 (0) | 2023.02.26 |
2/24(금) 파이썬 - 클래스2 (0) | 2023.02.24 |
2/23(목) 파이썬 - 클래스 (0) | 2023.02.23 |
2/22(수) 2. 함수 심화학습2 (0) | 2023.02.22 |