[Project_하다]/[Project_공부]
[우리FISA] OOP
브렌쏭
2024. 7. 15. 20:31
Object Oriented Programming
- 객체지향 프로그래밍
[Interface] 추상: 여러 사물, 개념에서 공통되는 특성이나 속성을 추출하는 것
[Extends] 상속: 부모 클래스의 속성과 메소드를 자식 클래스가 물려받는 것
[Overriding] 재정의: 부모 클래스의 메소드를 자식 클래스에서 재정의하는 것
[Overloading] 중복정의: 같은 이름의 메소드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의하는 것
[Polymorphism] 다형성: 같은 이름의 메소드가 입력값에 따라 다르게 동작하는 것
[Encapsulation] 캡슐화: 객체의 속성과 메소드를 하나로 묶고, 외부에서 접근을 제한하는 것
[Class] 클래스: 객체를 만들기 위한 설계도
[Object] 객체: 클래스를 이용하여 만들어진 실체
[Method] 메소드: 클래스 내부에 정의된 함수
[Attribute] 속성: 클래스 내부에 정의된 변수
[Constructor] 생성자: 객체가 생성될 때 자동으로 호출되는 메소드
[Destructor] 소멸자: 객체가 소멸될 때 자동으로 호출되는 메소드
etc...
Class
- 새롭게 사용자에 의해 정의되는 타입
내장 메소드들 또한 클래스로 구현되어 있음
Python의 함수도 클래스로 구현되어 있음
class MyClass:
def __init__(self, value): # 생성자
self.value = value
def __del__(self): # 소멸자
pass
def method(self): # 메소드
pass
- 함수: 특정 class에 구애받지 않는 독립적인 기능
print()
,len()
,type()
....
- 메소드: 특정 class에 속한 함수
list.append()
,str.upper()
,dict.keys()
....
Object (Instance)
- 클래스로부터 생성된 실체
obj = MyClass(3)
- 변수의 확장된 개념
- 객체는 속성과 메소드를 가짐
객체? 인스턴스?
- 객체: 클래스로부터 생성된 실체
- 인스턴스: 객체가 메모리에 할당된 상태
인스턴스만 따로 부르는 경우는 거의 없음
- 클래스와 객체의 관계성을 설명할 때 사용