객체지향 프로그래밍

드립이 블로그·2023년 3월 27일
0

객체지향 프로그래밍이란?

Object Oriented Programing OOP

객체가 중심이 되는 프로그래밍 방법이다.
"누가" "무엇을" 하는 것에 초점이 맞춰진다.
각각의 객체마다 고유한 역할이 부여된다.

특징

추상화

객체들의 공통점을 추출한다.
클래스를 정의하는 것을 추상화 라고 볼 수 있다.
추상화를 해 놓을 경우, 공통 부분은 그대로 사용을 하고, 새롭게 추가되는 부분만을 수정해서 사용하면 된다.

캡슐화

객체의 속성과 행위를 하나로 묶는 것이다.
Java에서는 접근제어자를 통해 객체를 캡슐화, 은닉화 시킨다.

상속

하나의 클래스가 가진 속성과 행위를 다른 클래스가 물려 받는 것이다.
이미 작성된 클래스를 상속받아 새로운 클래스를 만들기도 한다.

장점

코드의 길이가 줄어든다.
자료와 메서드의 사용과 추가가 자유롭다.

단점

상위 클래스의 변경이 어려워진다.
상속을 잘못 사용할 가능성이 존재한다.

다형성

하나의 객체가 여러개의 속성이나 기능을 가지게 하는 것이다.
대표적으로 오버로딩과 오버라이딩이 존재한다.

오버로딩 Overloading

같은 이름의 메서드가 여러가지의 매개 변수를 가지는 것이다.

오버라이딩 Overriding

상위 클래스의 메서드를 하위 클래스에서 재정의 하는 것이다.

객체지향 5대 원칙 SOLID

객체지향 프로그래밍에서 지켜야 하는 5대 원칙이다.
5대 원칙의 앞글자를 따와 SOLID라고 한다.
이를 철저히 지킬 경우, 시간이 경과해도 유지보수와 확장이 쉬워진다.

단일 책임 원칙 SRP

클래스를 변경하는 이유는 오직 하나여야 한다는 원칙이다.
SRP를 잘 지키면, 변경이 필요한 경우 수정할 대상이 명확해진다.

개방 폐쇄 원칙 OCP

확장에는 열려있고, 수정에는 닫혀있게 만들어야 한다는 원칙이다.
기존 코드를 변경하지 않고, 기능이 추가 될 수 있도록 설계가 되어야 한다.

리스코프 치환 원칙 LSP

자식 클래스는 언제나 부모 클래스를 대체 가능해야 한다는 원칙이다.
자식 클래스는 부모 클래스의 책임을 무시하지 않고, 재정의 하지 않고, 확장만을 수행해야 한다.

인터페이스 분리 원칙 ISP

클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙이다.
클라이언트의 목적에 적합한 인터페이스만을 제공해야 한다.

의존 역전 원칙 DIP

의존 관계를 맺을 때, 자주 변화하는 것 보다는 변화가 없는 것에 의존해야 한다는 원칙이다.
구체적인 클래스 보다는, 추상 클래스와 관계를 맺어야 한다.

0개의 댓글