Developer Cafe

OOP(Object Oriented Programming) 본문

개발자답게

OOP(Object Oriented Programming)

개발자 카페 2021. 3. 29. 14:50
728x90

자바프로그래밍에선 객체지향프로그래밍(OPP)이라 봐도 무방하다.

 

OOP하면 자동으로 4가지(캡슐화,추상화,다형성,상속성)가 떠올라야 한다.

1. 캡슐화

캡슐화란 하나의 객체에 대해 그 객체가 특정한 목적을 위해 필요한 변수나 메소드를 하나로 묶는 것을 의미한다.

예로, 성적기록부라는 클래스는 성적이라는 변수가 있고 그 성적을 조회하거나, 잔고를 수정할 수 있는 메서드등이 있다고 치는 것이다.

 

캡슐화를 하는 중요한 목적은 바로 정보의 은닉화이다.  성적라는 변수가 만약 public 으로 선언되어있다고 치자. 누군가 나의 성적조작을 통해 나의 삶에 큰 영향을 미칠수가 있다. 따라서 성적이라는 변수를 바로 접근할 수 없도록 private로 선언하고 데이터를 보호하는 것이다.

 

이렇게 보호된 변수는 getter나 setter등의 메서드를 통해서만 간접적으로 접근이 가능하도록 하는 것이 바로 캡슐화의 중요한 목적이다.

2. 추상화

현실 세계를 프로그래밍으로 옮겨와 현실 세계의 사물들을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍하는 기법입니다.

 

하지만 세상에 모든 것을 다 클래스에 담고 객체를 만들 수 있을까? 그것은 불가능하다. 따라서 추상적으로 생각해 일단 큰틀의 클래스를 구현하고 거기에 최소 이러한 공통적인 요소나 필수적인 요소는 들어갔으면 하는 바램에서 만든 것이 추상클래스이다.

 

예를 들자면, 아메리카노, 카페라떼, 카푸치노, 에스프레소 등 우리가 생각하는 여러종류의 커피가 있다. 이것을 다 클래스화하고 변수와 메서드 등을 개별적으로 만드는 것은 무모한 짓이다.

 

따라서 커피들의 공통적인 요소나 특징을 추출하는 과정인 추상화를 거쳐 요소를 끄집어 내면, 카페인, 물, 얼음? 등 필수적인 부품이 있고 물과 얼음은 농도나 그런걸 조율하고 대략적인 맛을 낸다. 

 

카페인은 잠을 달아내게 하는 공통적인 특징, 즉 어떤 커피든 필수적으로 필요한 메서드가 추출된다. 

이렇게 추상적으로 끄집어 낸 개념들을 큰 틀에서 클래스로 만든것이 바로 추상클래스이다.

3. 다형성

다형성은 상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해준다. 이를 통해 코드의 재사용, 코드길이 감소가 되어 유지보수가 용이하도록 도와주는 개념이다. 쉽게 같은 동작이지만 다른결과물을 나올때 이를 다형성이라고 생각하면 된다.

 

예를 들어 사람은 OK라는 손싸인은, 어떤 사람이냐에 따라 누군가에겐 욕으로 누군가에겐 좋은말로 스타일에 따라 사용되는 것과 비슷하다고 비유해서 생각하면 된다.

 

크게 자바프로그래밍 객체지향에서 다형성의 개념을 녹여내는 방법은 두가지인데, 바로

오버라이딩(Overriding) 과 오버로딩(Overloading) 이다. (아래참고)

yju7257.tistory.com/71

 

웹개발자 기술면접 정리 1

오버로딩 오버라이딩 차이 오버로딩 - 같은 이름의 메소드를 여러개 정의하는 것 - 매개변수의 타입이 다르거나 갯수가 달라야한다. - return type과 접근제어자는 영향을 주지 않음 public class Overloa

yju7257.tistory.com

4. 상속성

상속이란 기존 상위클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념이다. 기존클래스에 기능을 가져와 재사용할 수있으면서도 동시에 새롭게 만든 클래스에 새로운 기능을 추가할 수 있게 만들어 준다.

 

 

 

728x90

'개발자답게' 카테고리의 다른 글

일반인에게 개발의 세계에 대해서  (0) 2021.06.22
URI VS URL VS URN 차이  (0) 2021.05.07
REST API, SOAP API 차이  (0) 2021.03.18
동기 비동기 차이  (0) 2021.03.17
프레임워크와 라이브러리 차이점  (0) 2021.03.15
Comments