BackEnd/Java

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

nvvs 2022. 5. 27. 22:53

· 객체 지향 프로그래밍 (Object Oriented Programming, OOP)

  부품에 해당하는 객체들을 먼저 만들고, 하나씩 조립해서 완성된 프로그램을 만드는 기법.

 

· 객체 (Object)

  물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것.

  ex) 물리적: 자동차, 책, 사람 / 추상적: 학과, 강의, 주문

  속성(필드 field)과 동작(메소드 method)으로 구성.

  ex) 사람 = 이름, 나이 [속성] + 웃다, 걷다 [동작] / 자동차 = 색상, 모델명 [속성] + 달린다, 멈춘다 [동작] 

 

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

  ☞ 캡슐화, 상속, 다형성

 

  1. 캡슐화 (Encapsulation)

   객체의 실제 구현 내용을 감추는 것.

   → 외부 객체는 객체가 노출해서 제공하는 필드와 메소드만 사용 가능.

   외부의 오용으로 객체가 손상되지 않도록 하기 위함.

   접근 제한자(Access Modifier)를 사용하여 캡슐화된 멤버의 노출 여부를 결정함.

 

  2. 상속 (Inheritance)

   상위 객체가 가지고 있는 필드와 메소드를 하위 객체에게 물려주어 하위 객체가 사용할 수 있도록 하는 것.

   상위 객체 재사용. → 하위 객체를 쉽고 빨리 설계할 수 있음.

   반복된 코드의 중복을 줄여줌.

   상위 개체 수정으로 모든 하위 객체들의 수정 효과를 가져옴. → 유지보수 시간 최소화.

 

  3. 다형성 (Polymorphism)

    같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질.

    → 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 함.

    객체의 부품화를 가능하게 함

 

 

 

 

 

 

[참고 서적]

『이것이 자바다: 신용권의 Java 프로그래밍 정복 1』