객체지향(파이썬)

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