면접 - 자바

개발자 면접 질문 - 객체 지향 프로그래밍 정의

snow-line 2020. 12. 3. 19:40
반응형

1. 객체 지향 프로그래밍

 - 컴퓨터 프로그램을 명령어의 목록으로 보는 절차지향적 시각에서 벗어나 여러 개의 독립된 단위인 객체들의 모임으로 파악하고자 하는것.

 

2. 구성요소

 - 클래스 : 현실 세계의 객체의 속성과 동작을 필드와 메서드로 정의한 것으로 아직 메모리가 할당되지 않은 상태

 - 인스턴스 : 해당 클래스의 구조로 컴퓨터 저장 공간에서 할당된 실체를 의미

 - 객체 : Class를 기반으로 실제 메모리가 잡힌 것을 의미하며 이런 객체를 조합해 전체 프로그램을 완성해 나가는 것이 객체 지향 프로그래밍이다.

 

3. 특징

 - 상속 : 부모 Class 를 자식이 접근할 수 있도록 물려받는 방식

 - 추상화 : 객체들의 공통된 특성들을 파악하고 불필요한 특성은 제거하는 과정

 - 캡슐화 : 필드와 메서드를 하나의 단위로 묶고 그 중 일부는 외부에서 사용하지 못하도록 숨긴다.

 - 다형성 : 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있어 다양한 결과를 얻어내는 성질

 - 정보 은닉 : 외부에서 객체 상태를 바꾸거나 허가되지 않은 동작으로부터 보호

 

4. 장점

 - 생산성 향상

 - 코드의 재사용

 - 유지보수가 편해진다.

 

5. 단점

 - 실행시 속도가 느리다.

반응형