객체지향 프로그래밍 ?
객체지향 프로그래밍 OOP 란 프로그램을 어떻게 설계하는지에 대한 방법론 중 하나이다.
단순히 데이터와 처리 방법으로 나누는 것이 아니라 수많은 객체라는 단위로 나누고 상호작용으로 서술하는 방식이다.
객체지향 프로그래밍 특성 4가지
1.추상화
- 인터페이스로 클래스들의 공통적인 특성(변수, 메소드)들을 묶어 표현하는 것
2. 다형성
- 어떤 변수,메소드가 상황에 따라 다른 결과를 내는 것
* 오버로딩(Overloading) : 하나의 클래스에서 메소드의 이름이 같지만, 파라메터가 다른 것* 오버라이딩(Overriding) : 부모 클래스의 메소드를 자식 클래스의 용도에 맞게 재정의하여 코드의 재사용성을 높임
3. 캡슐화
- 실제로 구현 부분을 외부에 드러나지 않도록 하는 것
- 변수와 메소드를 하나로 묶음
- 데이터를 외부에서 직접 접근하지 않고 함수를 통해서만 접근
- ex) public, private, protected
public : 클래스 외부에서 접근 가능
private : 클래스 내부에서만 접근 가능
protected : 상속받은 자식 클래스에서만 접근 가능
4.상속성
- 자식 클래스가 부모 클래스의 특성과 기능을 물려받는 것
- 기능의 일부분을 변경하는 경우 자식 클래스에서 상속받아 수정 및 사용함
- 상속은 캡슐화를 유지, 클래스의 재사용이 용이하도록 해 준다.
객체지향의 5원칙 ( SOLID )
< CLean Code >의 저자, 로버트 마틴이 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 패더스가 SOLID라는 약어로 소개한 것!
S (SRP : Single Responsibility Principle)
한 클래스는 하나의 책임만 가져야 한다.
O (OCP : Open/Closed Principle)
확장에는 열려(Open) 있으나, 변경에는 닫혀(Closed)있어야 한다.
L (LSP : Liskov’s Substitution Principle)
프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
I (ISP : Interface Segregation Principle)
특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
D (DIP : ependency Inversion Principle)
추상화에 의존한다. 구체화에 의존하면 안된다.
출처 : velog.io/@ygh7687/OOP%EC%9D%98-5%EC%9B%90%EC%B9%99%EA%B3%BC-4%EA%B0%80%EC%A7%80-%ED%8A%B9%EC%84%B1
'소소한 개발 이야기' 카테고리의 다른 글
AJAX란 무엇인가 ? (1) | 2021.03.03 |
---|---|
비동기 프로그래밍 ( Asynchronous ) ? (0) | 2021.03.02 |
OOP와 함수형 프로그래밍의 차이점 (0) | 2021.02.23 |
함수형 프로그래밍이란 ? functional programming? (0) | 2021.02.22 |
브라우저 렌더링 과정 (0) | 2021.02.17 |