[CodesSates] AI 부트캠프

Object Oriented Programming

웅탈 2021. 7. 12. 16:04

 

OOP(객체지향 프로그래밍)

 

- 세상에 있는 실체를 컴퓨터에게 인식 시키기 위해 물체를 클래스, 인스턴스, 함수, 변수 라는 object로 변화시키서 프로그래밈을 구성하는 방법론

 

- 기능(함수,뱐수)이 재사용이 가능 하도록 설계

 

- 클래스 : 속성(인스턴스)과 행위(메소드)를 가지고 설계

- 객체 : 클래스에서 정의한 속성, 행위를 수행

 

class Player():
	def hitter(self):
    		return 'hitter 메서드'
    	def picher(self):
    		return 'picher 메서드'
        
 # hitter, picher 메서드는 Player 클래스의 행동을 정의
 
 
trout = Player()
trout.hitter()

# trout라는 객체 생성 후 hitter 메서드 사용

 

상속(Inheritance)

 

- Inheritance : 상위 클래스의 모든 기능(함수, 변수) 재사용 가능

- Composition : 다른 클래스의 일부 기능(함수) 재사용 가능

 

# 상속

class Player():
	def __init__(self, player):
    		self.player = player
            print("__init__ 메서드")

class trout(Player): # Player 클래스를 상속
	def MVP(self):
    		return print("The Most Valuable  " + self.player) # player 변수 재사용
            
# object 생성

killid = trout('player')
killid.MVP()

__init__ 메서드
The Most Valuable player

 

추상화(Abstraction)

 

- 핵심적인 개념 및 기능을 요약하는 것, object의 기능에 따라 상위 클래스를 상속 받아 하위 클래스 생성

ex) 변수, 함수, 클래스 사용

 

- 추상화를 잘 하기위해선 '직관적인 이름'으로 클래스 작성 / 주석 설명 첨부 필요

 

class Student
    """
    클래스 설명
    """
    def __init__(self, name, number):
    	"""
        함수 설명
        """

 

클래스의 인스턴스화
class Mylunch():
	pass
    
hungry = Mylunch() # 인스턴스화(메모리 할당)

 

 

 

* 추상화, 캡슐화 참고 블로그

https://velog.io/@gaya309/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%EC%A0%81-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B6%94%EC%83%81%ED%99%94-%EC%BA%A1%EC%8A%90%ED%99%94

 

[TIL] 파이썬 - 객체지향적 프로그래밍( 추상화, 캡슐화 )

파이썬 - 객체지향적 프로그래밍

velog.io

 

'[CodesSates] AI 부트캠프' 카테고리의 다른 글

정규 표현식  (0) 2021.07.09
Docker  (0) 2021.05.12
개발환경  (0) 2021.05.12
Interpreting ML Model  (0) 2021.04.23
Feature Importances  (0) 2021.04.22