객체지향(파이썬)
2023. 11. 5. 13:41ㆍ웹/백엔드-python
728x90
반응형
객체지향의 이해
유사성
공통적인 것은 미리 만들어 놓고 서로 다른점만 따로 구현

서로 다른 객체 사이의 공통점을 또 찾아내 구현 (프랙탈의 개념과 유사)
추상화 : 공통의 속성이나 기능을 도출
캡슐화 : 데이터 구조와 데이터의 연산을 결합
상속 : 상위 개념의 특징이 하위 개념에 전달
다형성 : 유사 객체의 사용성을 그대로 유지
객체와 클래스
객체는 추상화와 캡슐화의 결과
실세계의 사물에 대한 상태와 연산을 표현한 단위

클래스 정의
초기자
객체의 상태를 초기화하는 특수 메소드
__init__으로 명명
메소드 정의
self 매개변수
모든 메소드의 첫번째 매배견수
메소드의 구현에 사용되지만 메소드 호출 시 사용되지 않음
객체 자신을 참조하여 클래스 정의에 포함된 멤버에 접근 시 사용
class Cone :
def __init__(self, radius = 20, height =30):
self.r = radius
self.h = height
def get_vol(self):
vol = 1/3 * 3.14 * self.r ** 2 * self.h
return vol
def get_surf(self):
return 3.14 * self.r ** 2 + 3.14 * self.r * self.h
self를 붙이지 않는다면 사용할 수 있는 범위는 __init__ 함수 안에서만 사용가능하다.
self를 붙이면 class Cone 전체에서 사용할 수 있는 변수가 된다.
클래스 설계
UML 클래스 다이어그램 통해 데이터필드, 생성자, 메소드 표현 방법 표준화
원뿔 클래스의 표현

BIM 클래스의 표현

class Bmi:
def __init__(self,name,age,weight,height):
self.name = name
self.age = age
self.weight = weight
self.height
def get_BMI():
BMI = self.weight /(self.height/100)**2
return BMI
def get_status():
BMI = self.get_BMI()
if BMI >= 25 :
return "비만"
elif BMI >= 23 and BMI < 25 :
return "과체중"
elif BMI >= 18.5 and BMI < 23 :
return "정상"
else :
return "저체중"
객체와 인스턴스

- 클래스의 생성자를 통해 클래스의 인스턴스(객체) 생성
- 생성자의 이름은 클래스의 이름과 같다
- 클래스의 이름과 초기자의 매개변수를 사용하여 생성자를 호출

객체 참조변수를 사용하여 객체를 생성
cone = new Cone(20, 30)

반응형
'웹 > 백엔드-python' 카테고리의 다른 글
파일의 이해 (0) | 2023.11.05 |
---|---|
모듈 (0) | 2023.11.05 |
컴퓨터 이해 (0) | 2023.11.05 |
commit / rollback (0) | 2023.09.05 |
update 문 연습 (0) | 2023.09.05 |