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

hyeminn·2021년 1월 21일
0

### OOP(Object-Oriented Programming) 란?

캡슐화, 다형성, 상속성, 추상화 4가지 특징을 이용해 코드의 재사용을 증가시키고 유지보수 빈도를 감소시키는 장점을 얻기 위해 객체들을 연결시켜 프로그래밍하는 것

1. 추상화 (Abstraction)

  • 대상의 특성 중 불필요한 부분을 무시하고 필요한 공통점만을 다루어 현실의 복잡성을 극복하고 목적에 집중할 수 있도록 함
  • 객체들의 공통된 특징을 파악해 정의해 놓은 설계 기법
  • 공통의 속성이나 기능을 묶어 이름을 붙임 -> 객체를 만드는 과정
  • 즉, Java에서 Class를 정의하는 것과 같음

2. 캡슐화 (Encapsulation)

  • 실제 구현 부분을 외부에 드러내지 않도록 함
  • 특정 역할을 하는 속성(멤버변수), 기능(메소드)을 객체로 묶은 것
  • 데이터를 외부에서 접근하는 것을 방지하고 함수를 통해서만 접근할 수 있게 함
  • 접근지정자 public protected default private

3. 상속 (Inheritance)

  • 부모클래스의 속성과 기능을 상속받아 동일하게 사용함
  • 범용 클래스를 작성 후, 상속을 활용하면 여러클래스에서 중복되는 속성과 기능을 재사용할 수 있음

4. 다형성 (Polymorphism)

  • 동일 요청에 대해 서로 다른 방식으로 응답할 수 있도록 만드는 것
  • 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현하는 것
  • 오버라이딩과 오버로딩
    • 오버라이딩 : 상속받은 동일한 메소드 재정의
    • 오버로딩 : 동일한 이름의 메소드가 매개변수 타입, 개수 차이에 따라 다르게 동작

profile
성장하는 개발자가 되고 싶어요 😁

0개의 댓글