[Java] : 객체 지향 프로그래밍

dohyoungK·2024년 3월 14일
0

면접 스크립트

목록 보기
15/25
post-thumbnail

[Java] 객체 지향 프로그래밍


객체 지향 프로그래밍

객체 지향 프로그래밍이란 프로그래밍에 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고, 객체 간 상호작용을 통해 프로그램을 개발하는 것을 말한다.

객체 지향 프로그래밍의 특징

  1. 추상화 : 객체의 공통적인 속성과 기능을 추출해 정의하는 것. (인터페이스, 추상 클래스)

  2. 상속 : 이미 정의된 상위 클래스의 모든 속성과 기능을 하위 클래스가 물려 받는 것. 기존 코드를 재활용해서 사용함으로써 코드의 생산성을 높일 수 있다.

  3. 다형성 : 어떤 객체의 속성이나 기능이 상황에 따라 다른 역할을 수행할 수 있는 것.

    • 오버라이딩 : 상위 클래스의 메소드를 재정의해 사용하는 것
    • 오버로딩 : 같은 이름의 메소드를 매개변수를 다르게 정의해 사용하는 것.
  4. 캡슐화 : 서로 연관있는 속성과 기능을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것. 데이터 보호(외부로부터 클래스에 정의된 속성과 기능들을 보호)와 데이터 은닉(내부의 동작을 감추고 외부에는 필요한 부분만 노출)를 위해 캡슐화를 활용한다.

객체 지향 프로그래밍의 장단점

장점

  • 코드 재사용 용이, 생산성 향상 : 모듈화된 객체, 그리고 상속을 통해 코드의 재사용성을 높일 수 있고 생산성도 향상된다.

  • 유지보수 용이 : 프로그램 수정, 추가시에도 캡슐화를 통해 주변에 영향이 덜하기 때문에 유지보수가 용이하다.

단점

  • 실행 속도 느림 : 전반적으로 객체 지향 언어는 절차 지향 언어보다 상대적으로 실행속도가 느리다.

  • 설계에 많은 시간 소요 : 프로그램 설계시 클래스별, 객체별, 상속 등의 구조를 모두 설계해야하므로 절차 지향 언어에 비해 설계 시간이 많이 소요된다.


절차 지향 프로그래밍

순차적인 처리가 중요시되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법.

절차 지향 프로그래밍의 장단점

장점

  • 실행 속도 빠름 : 컴퓨터의 처리 구조와 유사해 실행 속도가 빠르다.

단점

  • 어려운 유지 보수와 디버깅 : 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵고, 따라서 유지 보수와 디버깅이 어렵다.

0개의 댓글