상세 컨텐츠

본문 제목

[Java Day 01] 자바를 배우기전 4대 특징

Java/Java Study

by ChrisMare 2018. 7. 5. 14:26

본문

JavaOOPL(Object Oriented Programming Language) 즉, 객체지향언어입니다.


객체지향언어는 c언어의 절차지향언어(단계적으로)가 아닌 객체단위로 작업을 수행하는 언어입니다.

이러한 객체지향언어의 장점은 작업의 효율성이 뛰어납니다. 절차지향언어는 확장과 유지보수를 하기에는

부적절합니다. 이러한 이유는 100-200줄 단위의 코드가 아니라 수만단위 줄의 코드를 가진 프로그램이 있는데

여기에 회사의 요청에 따라 확장, 변경 등을 하기위해서는 필요한 부분을 찾아가서 바꿔야되며 또한 이러한 함수기능을

다른곳에 사용하기에는 부적절합니다. 하지만 객체단위로 미리 나눠서 표현을 한다면 그저 관련 객체를 붙여나가며 확장하기에 유용합니다.

예를 들어, (팔, 다리, 몸통, 머리)를 각각 가진 객체가 있는데 이러한 객체는 다음에 또사용가능 합니다. 팔, 다리, 몸통, 머리를 가진 모든 동물, 사람, 

은 간단하게 다 활용 가능하기 때문입니다.


이 처럼 객체단위로 나누기에 필요한 개념은 설계할때 필요한 개념, 추상화라는 개념입니다.

첫째, 추상화는 한마디로 구체화하는 과정입니다.

팔, 다리, 몸통, 머리 라고 하지만 이것은 사람의 기준이기 떄문입니다. 하지만 다리, 몸통, 머리만 존재하는 존재가 있다고 가정하면 그 존재를 기준으로 하면 팔은 없기때문에 추상화의 개념은 기준이 되는 존재에 따라 구체적으로 표현하는 과정입니다.


둘째, 이러한 추상화로된 다시말해 구체화 된 객체들은 표현할 수 있는 data들인데 이 것은 다른 사람들이 접근 못하게 보호하는 개념 즉, 캡슐화개념이 있습니다.


셋째, 상속이 있습니다. 상속은 상위클래스(부모 클래스)에서 파생되는 하위 클래스(자식 클래스)

쉽게말해서, 추상화된 부모클래스가 존재하는 이 부모를 상속하는 자식 클래스는 부모가 가진 것을 자식도 사용(접근)할 수 있다는 개념입니다. 하지만!!! 상속을 할 때 관련이 있는 클래스를 상속해야지 됩니다. 예를 들어, 부모인 자동차클래스가 있는데 자식으로는 자동차클래스와 관련된 바퀴, 몸체 등이 있어야지 갑자기 의자라든지 관련이 없는 것을 상속하면 안됩니다. 


넷째, 그리고 마지막으로 편의성의 목적으로 사용하는 기능이 있는데요 다형성입니다. 기능 중에는 동적바인딩, 오버로딩이 있습니다. 

동적바인딩은 한마디로 부모의 이름으로 자식을 접근하는 방법이라고 할 수 있습니다.

오버로딩은  같은 이름의 함수명(메소드명)으로 매개변수를 달리 하여 여러방법을 표현하는 법입니다.


요약하자면....
OOP의 4대 특징

1. 추상화 : 추상화->구체화

2. 캡슐화 : Data 보호 및 은닉

3. 상속 : 코드의 재활용 및 확장

4. 다형성 : 편의성(동적바인딩, 오버로딩 등)

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

[Java Day 01] Java 기초  (0) 2018.07.05

관련글 더보기

댓글 영역