728x90
객체지향 프로그래밍이란?
객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
이 방식은 오늘날 가장 많이 사용한 대표적인 프로그래밍 방식이다. 대표적으로 Java, C#등이 대표적인 객체지향 프로그래밍 언어이다.
객체지향 프로그래밍 특징 그리고 장점, 단점
객체 지향 프로그래밍에서는 크게 추상화, 캡슐화, 상속, 다형성의 네 가지 특징을 가진다.
추상화
- 객체에서 공통된 속성과 행위를 추출하는 것
- 공통의 속성과 행위를 찾아서 타입을 정의하는 과정
- 추상화는 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단하게 만드는 것
캡슐화
- 데이터 구조와 데이터를 다루는 방법들을 결합 시켜 묶는 것 (변수와 함수를 하나로 묶는 것을 뜻함)
- 낮은 결합도를 유지할 수 있도록 설계하는 것
상속성
- 클래스의 속성과 행위를 하위 클래스에 물려주거나 하위 클래스가 상위 클래스의 속성과 행위를 물려받는 것을 말한다
- 새로운 클래스가 기존의 클래스의 데이터와 연산을 이용할 수 있게 하는 기능
다형성
- 하나의 변수명, 함수명이 상황에 따라 다른 의미로 해석 될 수 있는 것
- 어떠한 요소에 여러 개념을 넣어 놓는 것
- 오버라이딩 : 상위클래스가 가지고 있는 메소들를 하위 클래스가 재정의해서 사용하는 것
- 오버로딩 : 같은 이름의 메서드가 인자의 개수나 자료형에 따라 다른 기능을 하는 것
장점
- 최근에 가장 많이 사용하는 방식이다
- 협업이 중요한 대형 프로젝트에 적합하다.
- 클래스를 재사용하거나 상속을 통해 확장함으로써 코드 재사용이 용이하다.
- 클래스 단위로 수정이 가능하기 때문에 유지 보수가 편리하다.
단점
- 학습 난이도가 높다
- 개발자의 활용 능력이 중요하다.
- 처리속도가 상대적으로 느릴 수 있다.
- 객체의 수가 많아짐에 따라 용량이 커질 수 있다.
객체란?
객체는 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미한다. 즉, 객체는 값을 저장 할 변수와 작업을 수행할 메소드를 서로 연관 지은 것을 객체라고 할 수 있다.
물리적으로 존재하거나(자동차, 책, 사람), 추상적인 것(회사, 날짜) 중에서 자신의 속성과 동작을 가지는 모든 것을 말한다.
객체는 속성(필드)과 메소드(동작)로 구성된 자바 객체로 모델링할 수 있다.
참고
728x90
'Computer Science > DesignPattern' 카테고리의 다른 글
[DesignPattern] SOLID 원칙이란 (0) | 2023.04.02 |
---|---|
[DesignPattern] 디자인패턴에 대한 개요 (0) | 2023.03.31 |