자바는 객체지향 프로그래밍언어입니다. 말 그대로 '객체를 지향하는 프로그래밍을 하는 언어'라는 뜻입니다. 그렇다면 객체의 개념에 대해서 알아보겠습니다.

 

 객체란 쉽게 말해서 실체의 유무와 상관없이 고유한 속성을 가지고 다른 것과 구별가능한 것을 말합니다. 예를 들어 종이로 돼있고 글이 적혀있는 속성을 갖고 있는 책, 사칙연산이 가능한 계산기 등등이 모두 객체가 될 수 있습니다. 이런 객체들을 살펴보면 크게 속성과 동작으로 구성되어 있는 것을 알 수 있습니다. 앞서 말한 계산기의 경우 속성으로는 숫자패드와 계산버튼들이 있고 동작으로는 계산 기능을 갖고있다고 할 수 있습니다. 이때 자바에서는 이 객체의 속성을 필드(field)라고 하고 동작들을 메소드(method)라고 부릅니다.

 

 객체에 대해서 알아보았고 그럼 객체지향 프로그래밍의 특성에는 어떤 것이 있는지 알아보도록 하겠습니다.

 

 - 캡슐화 (Encapsulation)

  객체의 필드와 메소드를 하나로 묶어 외부에 노출되지 않도록 하는 특성입니다. 해당 객체가 아닌 외부 객체는 해당 객체의 내부 구조를 알 수가 없고 해당 객체에서 제공하는 정보만 알 수 있습니다.

 

 이처럼 필드와 메소드를 캡슐화하여 보호하는 이유로는 외부에서 잘못 접근하여 객체에 오류를 일으킬 수도 있기 때문입니다. 예시로 우리는 중요한 물건이 있으면 외부에 노출되지 않도록 숨기고는 합니다. 캡슐화의 이유는 이러한 이유와 같다고 볼 수 있습니다.

 

 - 상속 (Inheritance)

 상속이란 모두가 흔히 알다시피 자식이 부모에게서 재산을 물려받는 것을 말합니다. 객체 지향 프로그래밍에서도 객체끼리 상속이 가능합니다. 부모 객체는 자신이 갖고 있던 필드, 메소드들을 자식 객체에게 넘겨줍니다. 이렇게 되면 자식 객체는 상속받은 필드, 메소드들을 모두 사용할 수 있게 됩니다.

 

 상속은 부모 객체를 재사용해서 자식 객체를 간단하게 작성할 수 있도록 도와주고, 이미 완성된 객체를 재사용해서 새로운 객체를 만들기 때문에 코드의 중복을 줄여준다는 장점이 있습니다. 또한 수정사항이 있을 경우에 부모 객체를 수정하면 자식 객체들은 건드리지 않아도 되기 때문에 유지보수의 시간을 줄여준다는 장점도 있습니다.

 

 - 다형성 (Polymorphism)

 다형성이란 하나의 타입(type)으로 여러 객체를 대입해 다양한 기능을 이용할 수 있도록 하는 특성입니다. 자바에서는 다형성을 위해 부모 클래스, 인터페이스에서의 타입 변환을 허용합니다. 부모 클래스에서는 모든 자식 객체가 대입될 수 있고 인터페이스에서는 모든 구현 객체가 대입될 수 있습니다. 인터페이스는 아직 공부하지 않았으므로 추후에 언급하도록 하겠습니다.

'프로그래밍 > JAVA' 카테고리의 다른 글

클래스 선언  (0) 2021.04.29
Class - Field  (0) 2021.03.16
자바 배열  (0) 2019.04.25
자바 메서드 - 문제  (0) 2019.04.22
자바 메서드 ( method )  (0) 2019.04.21

+ Recent posts