Java

[Java] 객체지향 언어의 특징

똑똑한망치 2023. 12. 14. 18:42
728x90
반응형

1. 객체지향 언어의 특징


(1) 추상화

  • 현실 세계의 사실에서 주어진 문제의 중요한 측면을 주목하여 설명하는 방식
  • 실세계의 객체에서 불필요한 부분을 제거하여 필요한 부분만을 클래스로 만드는 작업
  • 속성과 행동으로 추상화를 실현
  • 즉, 실체를 -> 추상화 -> 클래스화(코드화) 하는 과정

 

(2) 캡슐화

  • 객체와 객체 간의 의사 소통을 위한 정보만을 노출
  • 즉, 실제 내부 구현 정보는 숨기는 원리
  • 추상화 과정에서 클래스를 정의할 때, 객체의 자료와 행위를 클래스 단위로 하나로 묶고, 실제 내부를 구현한다.
  • 내부 내용을 외부에 감추는 것

※ 정보 은닉 (Information hiding) 이 발생

- 캡슐화 과정에서 클래스 내부 구현을 외부에서 숨기기 때문에 내부에서 일어나는 일에 아무도 관심이 없다.

 

※ 클래스 단위의 내부 기능 중 일부는 외부에 공개되어 다른 객체와 메시지 전달 및 수신을 하며 외부와의 통로 역할을 한다.

 

 

 

(3) 상속

  • 객체지향의 가장 핵심이 되는 개념
  • 클래스 간에 부모-자식 관계를 형성하여 부모 클래스의 특징과 기능을 자식 클래스가 사용할 수 있도록 하는 특징이다.
  • 프로그램을 쉽게 확장할 수 있도록 해주는 수단
  • 상위 클래스와 하위 클래스 간의 관계를 나타내는 것을 계층도 라고 한다.
  • 장점 : 공통의 특성을 하위 클래스마다 반복적으로 기술하지 않고 한 번만 기술하기 때문에 중복을 줄여 재 사용성의 효과를 나타낸다.

 

 

(4) 다형성

  • 외부에 보이는 모습은 한 가지 형태이지만 실질적으로 쓰이는 기능은 여러 가지 역할을 수행한다는 의미이다.
  • 예를 들어 오버로딩(OverLoading), 오버라이딩(Overriding)이 있다.

 

 

반응형

'Java' 카테고리의 다른 글

[Java] System.arraycopy 사용법  (0) 2024.03.22
[Java] parseInt() VS valueOf() 차이점  (0) 2024.02.25
[Java] Vector  (0) 2023.11.21
[Java] Map 의 getOrDefault 사용법  (0) 2023.11.20
[Java] int와 Integer의 차이  (0) 2023.11.15