기타/면접 준비

2. 객체지향 언어의 특징

hrming 2022. 4. 29. 20:50

객체지향언어는 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가하여 보다 발전된 형태의 것

이러한 규칙들을 이용해서 코드 간에 서로 관계를 맺어줌으로써 보다 유기적으로 프로그램을 구성하는 것이 가능해짐.

 

  1. 코드의 재 사용성이 높다

  2. 코드의 관리가 용이

  3. 신뢰성이 높은 프로그래밍 

  (제어자와 메서드를 이용해서 데이터를 보호하고, 올바른 값을 유지하도록 하며 코드의 중복을 제거하여 코드의 불일칠로 인한 오동작을 방지)

 

출처: 자바의 정석 교재

 


1. 추상화

: 객체에서 공통된 속성과 행위를 추출하는 것을 추상화(Abstraction)라고 한다.

 

- 추상클래스

 추상클래스는 미완성 설계도에 비유할 수 있다.

 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다.

 새로운 클래스를 작성할 때 아무 것도 없는 없는 상태에서 시작하는 것보다는 완전하지는 못하더라도 어느 정도 틀을 갖춘 상태에서 시작하는 것이 나을것이다.

 

 

2. 캡슐화

: 캡슐화는 프로그램의 세부 구현을 외부로 드러나지 않도록 특정 모듈(클래스) 내부로 감추는 것이다.

 

* 접근제어자

public > protected > default > private

 

* 접근제어자를 사용하는 이유

: 외부로부터 데이터를 보호하기 위해서

: 외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서

 
 

3. 상속

: 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다.

: 보다 적은 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다.

 

 

4. 다형성

: '다양한 형태로 나타날 수 있는 능력'을 뜻한다.

: 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있다.

: 같은 이름의 메소드를 여러개 정의 (오버로딩)

 

* 오버로딩의 장점

: 하나의 이름으로 정의함으로써 하나의 이름만 기억하면 되므로 기억하기도 쉽고 같은 기능을 한다는 것을 쉽게 예측할 수 있다.

: 메서드의 이름을 절약할 수 있다.

 

출처: https://dublin-java.tistory.com/10