-
객체지향프로그래밍(OOP)Fast-campus/Java 2022. 12. 23. 20:08
객체 지향 프로그래밍은 컴퓨터 프로그래밍 방법 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.
객체란?
객체는 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 값을 저장 할 변수와 작업을 수행 할 메소드를 서로 연관된 것들끼리 묶어서 만든 것을 객체라고 할 수 있습니다. 개인적으로 저는 처음 프로그래밍 공부를 했던 언어가 C언어여서 그런지 절차지향 언어와 비교를 하며 생각하니 이해하기가 쉬웠어서 아래에 비교를 하면서 간단하게 설명을 해보겠습니다!
객체지향 vs 절차지향
객체 지향
- 많은 객체(Objcet)들이 모여서 상호 협력하면서 데이터를 처리하는 방식의 프로그래밍 설계 방법
- 기능이 아닌 객체가 중심이 되며 "누가 어떤 일을 할 것인가?"가 핵심
장점
- 코드 재사용이 용이함
- 남이 만든 클래스를 가져와서 이용할 수 있고, 상속을 통해 확장하여 사용할 수 있음 - 유지보수가 쉬움
- OOP에서는 수정해야 할 부분이 클래스 내부에 멤버 변수 혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다. - 대형 프로젝트에 적합
- 클래스 단위로 모듈화시켜서 개발할 수 있기 때문에 업무 분담하기 좋다
단점
- 처리 속도가 상대적으로 느림
- 객체가 많으면 용량이 커질 수 있음
- 설계시 많은 시간과 노력 << 얘가 제일 힘듬
(객체지향이 쉽게 이해가 안가는 이유도 이거인가 싶음..)
절차 지향
- 시간이나 사건의 흐름에 따른 프로그래밍이다.
- 기능중심으로 바라보는 방식으로 "무엇을 어떤 절차로 할 것인가?"가 핵심
장점
- 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어보다 더 처리속도가 더 빠름
- 함수를 통한 코드의 재활용성이 높아 가독성이 높아짐.
// Java를 이제 배우는 중이라서 그런지 이 부분이 가장 아쉬웠음..
단점
- 유지보수가 어렵습니다.
- 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 결과값도 변함
- 2번과 비슷한 느낌의 단점인데 디버깅하기가 어려움
객체지향 설명 포스팅에서 빠질 수 없는 OOL의 특징 4가지
- 캡슐화
더보기- 객체의 속성과 행위를 하나로 묶음
- 데이터와 코드의 형태를 외부로부터 은닉 - 상속
더보기- 객체가 다른 객체를 상속받아 상속받은 객체의 요소를 사용하는 것
- 자식 객체는 상속된 부모 객체의 은닉화 구성에 따라 정해진 변수, 메소드에 접근 할 수 있음 - 다형성
더보기- 한 객체가 다른 여려형태의 객체로 재구성 되는 것
- 추상화
더보기- 클래스를 정의할 때 불필요한 부분들을 생략하고 객체의 속성 중 중요한 것에만 중점을 두어 개략화 하는 것을 말한다.
- 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것
'Fast-campus > Java' 카테고리의 다른 글
Java가 무엇인가 (0) 2022.12.19