JAVA

JAVA_자바 객체지향 개념과 3대 요소(기술면접 대비)

원코딩 2022. 5. 24. 21:08

 

 

 

 

아직 면접을 보려면 멀었지만 기술 면접을 대비하는 의미로 객체지향 개념에 대해 정리해보고자 한다. 

 

 

현 시점에서 객체지향은 대세 중 대세이다. 개발에 관심있는 사람이라면 한 번쯤은 들어봤을 객체지향 이지만, 개념을 정확히 이해하는 사람은 많지 않을 것이다. 객체지향에 대해 알아보도록 하자.!

 

 

그렇다면 객체 지향 언어가 등장하기 전에 사용한 언어는 무엇일까 ? 바로 절차 지향적 언어이다. 

절차적 프로그래밍은 처음부터 끝까지 순서대로 작업한다. 

1부터 10까지 작업을 한 후 5번에서 오류가 났을 경우 1부터 10까지 전 과정을 확인해야 한다. 

즉 절차지향적 언어는 오류/수정이 자유롭지 않다. 

 

 

 

 

1. 객체지향의 개념 


객체지향을 설명할 때 가장 많이 드는 예시가

자전거 예시이다. 

하나의 자전거가 있다고 하자, 

 

자전거를 부품별로 나누지 않고

하나로 본다면, 

핸들이 고장났을 때 

자전거를 다시 장만해야하는

불상사가 발생한다. 

이러한 경우를 앞서 설명한 

절차지향 적인 프로그래밍이라 한다.

 

반대로

자전거 각각의 부품을 객체로 보고

바퀴, 몸통, 핸들, 기어 시트로 나눈다면

핸들이 고장났을 때 

핸들 부분만 수리하면 된다. 

 

이처럼 프로그램을

하나의 큰 덩어리로

보지 않고,

기능 단위의 객체로 구분지어

수정/ 재사용 하는 것이 

객체지향 프로그램이다. 

 

 

 

 

2. 객체지향의 3대 요소


①  캡슐화 / 은닉화 

캡슐화 : 상호 연결이 가능

public void setA(int a){}

은닉화 : 상호 연결이 안됨

private int a;


 상속 / 포함 

재사용을 목적으로 함.
포함(has-a) : 변경없이 사용

상속(is-a) : 변경해서 사용

 

 다형성

수정과 추가가 가능한 다형성은 

오버로딩과 오버라이딩에 대한 개념을

확실하게 하면 이해할 수 있다. 


오버로딩

새로운 기능 추가

new


오버라이딩

기존의 기능 변경

modify 

 

3. 객체지향 클래스의 구성요소


=오버로딩
=오버라이딩

 

 

 

 

4. 객체지향의 확장과 재사용


extends : 상속 (단일 상속)

포함 : 있는 그대로 (spring) 독립적으로 사용

 

 

 

 

 

 

5. 객체지향의 종류


절차지향 프로그램 : C, COBOL, FORTRAN

객체지향 프로그램 : C++, JAVA, PHYTON