객체지향이란?
자바는 객체지향 (Object Oriented) 프로그래밍 언어이다
기존 프로그래밍 방법 중 절차지향은 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다. 대표적인 언어로는 C언어가 있는데 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것보다 더 빨리 처리되어 시간적으로 유리한 편이었다. 하지만 기술이 발전하고 소프트웨어와 하드웨어가 발전함에 따라 객체지향 언어를 사용해 개발하려는 것을 기능별로 묶어 모듈화를 함으로써 하드웨어가 같은 기능을 중복으로 연산하지 않도록 하고, 모듈을 재활용하기 때문에 하드웨어의 처리량을 획기적으로 줄여주었다.
객체지향이라는 것 자체에 대한 개념이 명확하게 정의를 내릴 수는 없지만 실제 세계를 모델링하여 소프트웨어를 개발하는 방법이라고 봐도 된다. 객체지향 프로그래밍에서는 데이터와 절차를 하나의 덩어리로 묶어서 생각할 수 있다.
객체지향의 대표적인 세 가지 특성이다.
- 상속
- 다형성
- 추상화
하나하나 뜯어서 봐 보자...
캡슐화 Encapsulation
관련된 데이터와 알고리즘(코드)이 하나의 묶음으로 정리된 것. 개발자가 만들며, 관련된 코드와 데이터가 묶여있고 오류가 없이 사용리 편리하다. 데이터를 감추고 외부와 상호작용은 메소드를 통해 한다. > 보안성 유지 가능
상속 Inheritance
말 그대로 자식이 부모로부터 무언가를 물려받는 것이다. 작성된 클래스(부모 클래스)를 이어 받아서 새로운 클래스를 생성하는 기법으로 기존 코드를 재활용할 수 있다. 객체지향의 큰 장점 중 하나이다.
다형성 Polymorphism
하나의 객체가 여러 개의 자료형 타입을 가질 수 있는 것을 뜻한다. 인터페이스를 알고 있다면 쉽게 이해할 수 있다. 인터페이스를 implements 한 뒤 동일한 메소드명을 사용하면 코드가 더 간단해진다.
그래서 장점이 뭔데요?
- 생산성 향상
- 자연적인 모델링
- 재사용성
- 유지보수의 용이성
사실 객체지향언어(java)를 사용해 보지 않았다면 글로만 보면 이해가 안 될 수 있다. 사실 나도 그랬다... 프로젝트를 진행해 보기 전에 글로만 보면 그래 그게 그래서 어쩐다는 소리인가 싶었는데 역시 해 봐야지 이해도 하기 쉽다.
참조: 점프 투 자바 (https://wikidocs.net/218)
위시켓 블로그 (http://blog.wishket.com)
공부해서 남 주자(http://private.tistory.com/9)
'IT > JAVA' 카테고리의 다른 글
java 회문 판별 코드 (0) | 2019.01.09 |
---|---|
JAVA 설치하기 (1.8, 환경변수 설정) (0) | 2019.01.09 |