IT 기본지식

자바의 특징 (객체 지향, 캡슐화, 상속, 다형성, 플랫폼 독립성)

studyingqwerty 2025. 1. 31. 21:10

1. 객체 지향

 

비유 : 레고 블록으로 집을 짓는 것

 

자바는 객체라는 개념을 중심으로 프로그래밍을 한다.

객체는 현실 세계의 사물을 코드로 표현한 것이라고 보면 된다.

 

예 > 레고 블록

  • 레고 블록 하나하나(객체)가 모여서 집(프로그램)이 완성된다.
  • 각 블록(객체)은 특정한 모양과 역할을 가지고 있다.
  • 블록끼리 조립하는 방식(클래스와 상속)을 정하면, 다른 집을 만들 때도 재사용할 수 있다.
     

객체 지향 프로그래밍(OOP)은 프로그램을 ‘하나의 거대한 덩어리’가 아니라, 여러 개의 객체를 조립해서 만드는 방식이다.

 


 

2. 캡슐화

 

비유 : 리모컨의 버튼

 

자바에서는 객체의 내부 데이터를 보호하고, 외부에서 직접 변경하지 못하도록 숨길 수 있다.

 

예 > TV 리모컨

 

- 리모컨 내부에는 복잡한 회로(데이터, 로직)가 있지만, 우리는 그걸 직접 건드릴 필요가 없다.

- 대신 '전원 버튼'이나, '볼륨 버튼' 같은 정해진 인터페이스(메서드)로 조작할 수 있다.

- 사용자는 내부 구현을 몰라도 쉽게 사용할 수 있고, 안전하게 보호할 수 있다.

 

자바에서 private 같은 접근 제한자를 사용하면, 객체 내부 데이터를 보호할 수 있다.

 


3. 상속

 

비유 : 부모의 유전자를 물려받는 자식

 

자바에서는 부모 클래스가 가지고 있는 기능을 자식 클래스가 물려받을 수 있다.

 

예 > 동물

 

부모 클래스 : 포유류

자식 클래스 : 강아지, 고양이

 

포유류의 공통 기능 : 숨을 쉰다, 새끼를 낳는다

 

강아지와 고양이는 부모 클래스로부터 공통 기능을 상속받고, 자신만의 특징(짖기,야옹하기 등)을 추가할 수 있다.

 

이렇게 하면 중복 코드를 줄이고, 유지보수를 쉽게 할 수 있다.

 


4. 다형성

 

비유 : 운전대로 다양한 차량 운전하기

 

자바의 다형성이란, 같은 기능을 다양한 방식으로 실행할 수 있는 것을 의미한다.

 

예 > 운전대

 

운전자가 자동차를 운전할 때, 소나타를 운전하다가 아반떼로 바꾸어 운전해도 큰 어려움이 없다.

자동차의 기능인 엑셀, 브레이크와 같은 표준 기능들이 소나타나 아반떼나 동일하기 때문이다.

 

운전자의 입장에서는 운전대를 돌리면 차가 움직이는 것만 알면 된다.

하지만, 실제로 자동차, 버스, 트럭마다 내부적인 움직임(핸들 반응, 속도 등)은 다를 수 있다.

 


5. 플랫폼 독립석

 

비유 : 번역기

 

자바로 만든 프로그램은 한 번만 작성하면 어떤 운영체제(OS)에서도 실행할 수 있다.

 

예 > 번역기

 

- 한국어로 글을 쓰면, 번역기를 통해 영어, 일본어, 중국어 등으로 변환할 수 있다.

- 자바에서는 JVM(JAVA Virtual Machine)이 번역기 역할을 해주어서, 어떤 환경에서도 실행 가능하다.