-
객체 지향 프로그래밍의 개념 및 4가지 특징WEB & CS 2023. 10. 10. 22:13
객체 지향 프로그래밍
- 프로그램을 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임
- 프로그램의 일부분에 해당하는 객체를 먼저 만들고, 만들어진 객체들을 조립해 하나의 완성된 프로그램을 만드는 프로그래밍 방법론
객체지향 장점
- 프로그램을 유연하고 변경이 용이하게 만들 수 있다.
- 문제가 생긴 해당 객체의 코드만 변경하기 때문에 코드수정 최소화하고 유지보수하는데 유리하다.
- 코드 재사용을 통해 반복적인 코드를 최소화하고 코드를 간결하게 표현할 수 있다.
객체지향 4가지 특징
- 추상화
- 객체의 공통적인 속성과 기능을 추출하여 정의하는 것
- 추상클래스와 인터페이스가 대표적인 문법이다.
- 객체가 수행하는 핵심적인 역할만 규정하고 추상클래스와 인터페이스를 상속받아 실질적인 코드를 작성
- 유연하고 변경에 열려있는 프로그램을 설계하기 위해 역할과 구현을 분리한다.
- 상속
- 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 문법
- 클래스간 공유될 수 있는 속성과 기능을 상위클래스로 추상화시키고 하위클래스가 상속을 받아 상위클래스의 속성과 기능들을 간편하게 사용할 수 있도록 한다.
- 클래스 간 공유하는 속성과 기능을 반복적으로 정의할 필요없이 재사용이 가능해 반복적인 코드를 최소화하고 속성과 기능에 접근이 간편하다.
- 메서드 오버라이딩을 사용하여 내용을 재정의 가능
- 추상화와 차이점
- 추상화는 상위 내용이 하위에 반드시 정의
- 상속은 상위 내용이 하위에 선택적으로 정의
- 캡슐화
- 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것
- 외부로부터 클래스에 정의된 속성과 기능을 보호하기 위해 사용
- 내부 동작을 감추고 외부에 필요한 부분만 노출하기 위해 사용
- 접근제어자와 getter/setter를 활용해 구현한다.
- 다형성
- 어떤 객체의 속성이나 기능이 상황에 따라 여러가지 형태를 가질 수 있다.
- 대표적인 예로 메서드 오버라이딩과 메서드 오버로딩이 있다.
- 메서드가 상황에 따라 재정의된다.
- 상위 클래스 타입의 참조변수로 하위 클래스의 객체를 참조할 수 있도록 하는 것
- 하나의 타입만으로 여러 가지 타입의 객체를 참조할 수 있어 보다 간편하고 유연하게 코드를 작성하는 것이 가능
public class Main { public static void main(String[] args) { // 기존의 객체 생성 Car car = new Car(); Bike bike = new Bike(); // 다형성을 적용 (상위클래스 타입의 참조변수로 하위클래스 객체를 참조하는 것) Vehicle car = new Car(); } }출처)
'WEB & CS' 카테고리의 다른 글
[CS 자료구조] 큐에 대한 내용 (0) 2023.11.08 [CS 자료구조] 스택에 대한 개념 (0) 2023.11.08 WAS(Web Application Server)와 WS(Web Server) 차이점 (0) 2023.10.04 Redirect와 Forward의 차이점 (0) 2023.09.29 프로세스(Process) & 스레드(Thread) 정리 (0) 2023.08.13