[Java] 객체지향 프로그래밍(Object-Oriented Programming)

김용준·2022년 9월 23일
0

Java Basic

목록 보기
13/22

객체지향프로그래밍이란?

프로그램의 각 기능들을 일종의 부품으로 바라보고 그것들을 조합하여 프로그램을 설계하는 방법이다. 여기서 부품이 객체에 해당하고, 객체들은 상호작용하며 프로그램의 기능을 수행한다. 이러한 객체를 생성하기위한 설계도를 '클래스'라고 부른다. 객체지향프로그래밍을 줄여서 OOP(Object-Oriented Programming)라고도 한다.

클래스와 객체

  • 클래스는 객체의 속성과 기능을 정의해 놓은 일종의 객체 설계도다.
  • 하나의 클래스로 여러 개의 객체를 생성할 수 있다.
  • 클래스에서 정의한 속성과 기능을 사용하려면 반드시 객체를 생성해야 한다.

특징

  • 추상화 (Abstraciton)

    • 객체들의 공통된 속성과 기능을 추출하여 클래스로 정의하는 것.
  • 상속 (Inheritance)

    • 새로운 클래스(하위 클래스)가 기존 클래스(상위 클래스)의 속성과 기능을 이용할 수 있게 하는 것.
    • 상위 클래스를 재사용하기 때문에 하위 클래스를 빠르게 개발할 수 있다.
    • 상위 클래스와 하위 클래스는 종속관계를 형성함으로서 클래스들을 조직화 할수 있다.
  • 캡슐화 (Encapsulation)

    • 객체의 실제 구현내용을 외부에서 볼 수 없도록 하는 것.
    • 잘못된 사용으로 인한 객체의 손상을 방지한다.
    • 접근제한자를 사용해서 공개할 것인지, 숨길 것인지 결정할 수 있다.
  • 다형성 (Polymorphism)

    • 같은 종류의 객체지만, 실행결과가 다양한 객체를 이용할 수 있는 성질.
    • 사용방법은 동일하지만, 실제 사용하는 객체가 바뀌면 실행결과가 다르게 나타나는 것.
    • 예시)
      컴퓨터의 출력기능 사용하기
      흑백 프린터 사용 중: 흑백 인쇄물 출력
      컬러 프린터 사용 중: 컬러 인쇄물 출력

장점

  • 코드의 재사용성이 높다.
    • 새로운 코드를 작성할 때, 기존 코드를 이용해서 쉽게 작성할 수 있다.
      (상속)
  • 코드의 관리가 용이하다.
    • 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.
      (조립, 디자인패턴)
  • 신뢰성이 높은 프로그래밍이 가능하다.
    • 접근제한자와 메소드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 한다. (캡슐화)
    • 코드의 중복을 제거하여 코드 불일치로 인한 오동작을 방지할 수 있다.
      (중복제거, 리팩토링)
profile
차선이 모여 최선이 된다.

0개의 댓글