새소식

반응형
Java/Spring

객체지향 프로그래밍

  • -
반응형

객체지향 프로그래밍(Object Oriented Programming)

객체지향 프로그래밍은 프로그램을 만드는 여러가지 방법 중 하나 입니다.

프로그램을 만드는 각각의 요소(객체)들을 정의하고 구현 해놓은 다음 만들어진 요소(객체)들을 조합해

최종 프로그램을 만드는 방식입니다. 여기서 요소(객체)란 상태와 행위를 가지는 요소라고 생각하면 된다.

간단하게 얘기하면 어떤 상태와 행위를 가지는 객체를 각각 만들어 조합하여 프로그램을 완성하는 방법이다.

 

예를 들어 자동차의 기능을 만든다고 했을 때 브레이크 기능, 엑셀 기능, 기어 조작 기능 등

여러가지의 기능들을 따로 만들어 조합하면 자동차의 기능이 된다.

 

장점

- 코드 재사용이 용이

다른 사람이 만든 클래스를 가져와 사용할 수 있고 상속을 통해 확장할 수 있으므로 확장성이 뛰어나다.

 

- 유지보수가 쉽다.

절차지향 프로그래밍에서는 에러가 발생하면 그 에러만 수정하는게 아닌 전체를 수정해야 하지만

객체지향 프로그래밍에서는 에러가 발생한 객체만 수정하면 되기 때문에 유지보수가 쉽다.

 

- 대형 프로젝트에 적합하다.(업무 분담하기가 쉽다.)

각각 객체, 클래스 단위로 개발할 수 있으므로 여러명, 여러 회사에서 개발할때 업무 분담하기가 쉽다.

 

객체지향 프로그래밍의 큰 특징으로는 4가지가 있다.

 

추상화

객체지향 관점에서의 추상화는 클래스를 정의할 때 불필요한 부분들을 생략하고 객체의 속성 중 중요한 것에만

중점을 두어 만든다.

즉, 클래스의 공통된 성질이나 속성, 기능들을 묶어 만들어 놓는게 추상화라고 한다.

 

다른 곳에서 얘기한것처럼 예를 들어보자.

벤츠, 아우디, 소렌토, 소나타, 아반떼 등 이런 종류의 자동차를 만든다고 가정한다. 각각의 모든 자동차

제작하는 방법을 클래스화 시키면 너무나도 무모한 짓이고 오래 걸린다.

벤츠 바퀴 만들기, 아우디 바퀴 만들기 처럼 자동차의 바퀴 만드는것은 공통된 요소이다. 이러한 공통된 요소들인

바퀴 만들기, 핸들, 차문, 브레이크, 엑셀 등 기본적인 기능을 큰 틀로 만들어 놓고 사용하는게 추상화다.

이러한 큰 틀을 불러다가 내가 필요한 기능만 추가하여 만들면 금방 만들 수 있다.

 

 

다형성

동일한 이름을 갖는 여러 형태의 메소드가 다른 의미로 해석될 수 있는게 다형성이다.

가장 많이 들어봤던 오버라이딩, 오버로딩이 다형성의 큰 특징이다.

- 오버라이딩 : 자식 클래스에서 부모 클래스의 메소드를 재정의하여 필요한 기능을 추가하고 사용하는 것

- 오버로딩 : 매개변수가 다르게 설정된 같은 이름의 메소드를 여러개 정의한 후 호출하여 사용하는 것

 

 

상속성

하나의 클래스가 가진 특징(함수, 데이터)을 다른 클래스가 물려받아 사용하는 것이다.

기존 코드를 그대로 사용하는 코드의 재사용성과 유지보수를 위해 사용된다.

사용하는 방법은 extends 키워드를 사용한다.

 

 

캡슐화

관련이 있는 변수와 함수를 하나의 클래스로 묶고 외부에서 쉽게 접근하지 못하도록 정보를 은닉하는것이다.

정보은닉의 가장 쉬운 방법으로는 접근제어자를 사용하여 외부에서 접근할 수 없도록 한다.

내가 중요한 정보를 저장한 데이터의 접근제어자가 public 이라고 하면 모든사람이 접근할 수 있다.

이러한 public 접근제어자를 private로 설정하여 데이터를 보호하면 쉽게 접근할 수 없다.

 

 

 

 

 

반응형

'Java > Spring' 카테고리의 다른 글

서블릿(Servlet), 서블릿 컨테이너(Servlet Container)  (0) 2022.04.07
HTML 과 JSP 차이  (0) 2022.04.04
MVC 패턴  (0) 2022.03.21
Spring Boot  (0) 2022.03.21
Spring Data JPA, ORM(Object-Relational Mapping)  (0) 2022.03.21
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.