본문 바로가기
JAVA

[JAVA] 비전공자가 알려주는 객체지향이란?(+클래스,추상화,객체 개념정리)

by lumayi 2021. 9. 17.

나는 프로젝트 위주로 프로그래밍을 익혔다보니

이런 기본적인 개념을 모른다는 것을 깨달았다.

두둥.

 

돌머리에서 벗어나기 위한 개념 정리를 꾸준히 해보려한다!

(어려운 말들은 구글에 치면 많이 나오니

저는 비전공자의 시각에서 쉽게 쉽게 풀어내겠습니다!)

 

그래서 객체지향이란?

일단, 객체지향과는 다른 종류에 절차지향이 있는데!

코드를 주루루~룩 순차적으로 써내려가고, 순차적으로 실행이 되는 것이 절차지향!

 

객체지향이런 코드들의 목록으로 프로그래밍을 보는 것에서 벗어나는 것이다.

 

 

즉, 나열된 코드들의 목록으로 실행된는 것이아니라

하나하나 독립된 객체들을 만들어주고,

이 객체들이 서로 데이터를 주고 받고 처리하도록 만들어주는 것이다.

 

 

근데 나는 또 의문이 생겼다.

 

!!!!!!!!!객체는 정확히 무엇인가!!!!!!!!!

 

예를 들어, 내가 붕어빵을 만드는 장인이다라고 치자!

후후후.

 

 

붕어빵을 만드는 비법서가 바로 클래스이고,

그 비법서로 만든 붕어빵객체이다.

그리고 비법서안의 세세한 방법(슈크림2:물1:밀가루3)이 바로 메서드이다.

 

그러니까 붕어빵들끼리 서로 소통하도록하고

그 붕어빵에 문제가 생기면

붕어1 붕어2 붕어3 따로 찾아가서

쉽게 쉽게 바꿀 수 있는 것이다!

 

이것이 바로 객체지향의 장점인

1. 프로그램의 유지보수가 용이하다.

2. 프로그램을 유연하고 변경이 쉽게 해준다.

것이다!

 

 

그리고,

객체 지향을 알아보면 추상화가 등장하게 되는데!

쉽게 말해서 추상화란?

객체들간의 공통적인 핵심적인 기능을 간추려 내는 것이다!

 

붕어빵에 펄떡이는 기능이 있었다고 해보자!

 

근데 붕어 1호에는 펄떡이며 머리가 터지는 결과!?

붕어 2호에는 펄떡이며 몸통이 터지는 결과!

붕어 3호에는 펄떡이며 꼬리가 터지는 결과!

를 만들려고 한다.

 

 

그러면 위의 붕어 비법서 클래스추상 클래스로 만들어주고

펄떡이는 메소드 또한 추상 메서드로 만들어준다!

 

ex)

public abstract class LegendFish(){

...

public abstract void 펄떡펄떡();

...

 

}

 

그리고 이 추상 클래스 붕어 1호에 상속시켜준 뒤,

추상 메서드를 원하는대로 오버라이드 해주면 된다!

 

ex)

public class 붕어1호 extends LegendFish(){

...

@Override

public void 펄떡펄떡(){

system.out.println("머리가 터졌습니다");

}

...

}

 

쨔쟌~

 

이렇게 공통적인 펄떡펄떡() 메소드를

붕어1,2,3호에 각각 맞게 재사용 할 수 있게 해주는 것이

바로 추상화 클래스이다~!

 

반응형