OOP(Object-Oriented Programming) 란?

Yeeun_Kim·2024년 7월 29일
0
post-thumbnail

1. OOP(Object-Oriendted Programming)이란?

간단히 말하자면 객체의 관점에서 프로그래밍 하는 것이라 말 할 수 있다. 즉, 현실 세계를 프로그래밍으로 옮겨와 프로그래밍 하는 것을 의마한다.

  • 객체(Object)란 실제 사물을 프로그래밍으로 옮겨와 모델링하는 것으로 자신의 속성(Property)와 행위(Method)를 가지고 있다.
  • 객체의 속성(Property)은 객체의 상태, 성질, 데이터 등을 의미한다.
  • 행위(Method)란 객체의 기능이나 데이터를 조작하는 연산 등을 의미한다.

2. OOP의 4가지 특징

2-1. 추상화

객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 의미한다.
실제로 존재하는 개체들을 프로그램으로 만들기 위해 공통 특정을 파악해 필요없는 특성을 제거하는 과정을 뜻한다. 객체들은 실제의 모습이지만, 클래스는 객체들이 어떤 특징이 있어야 한다고 정의하는 추상화된 개념이다.

2-2. 캡슐화

데이터와 코드의 형태를 함께 묶어 외부에서 알 수 없도록 하고, 데이터의 구조와 역할/기능을 하나의 캡슐형태로 구현하는 방법이다.

  • 변수를 private 으로 선언하여 데이터를 보호하고, 보호된 변수는 getter() / setter()메소드를 통해서만 간접적으로 접근을 허용하는 것이다.
  • 캡슐화를 할 경우 불필요한 정보를 감추어 클래스 내부 구현의 응집도를 높이고 외부 클래스와의 결합도를 낮출 수 있다.

2-3. 상속성

기존 상위 클래스에 기능을 가져와 재사용할 수 있으면서 동시에 새로운 하위 클래스에 새로운 기능도 추가함으로써 재사용성을 높이고, 코드의 중복을 낮출 수 있다.(상속 한 Class: 부모 Class / 상속 받은 Class: 자식 Class)

2-4. 다형성

한 객체가 상속을 통해 기능을 확장하거나 변경하여 다른 여러 형태(객체)로 재구성 되는 것을 의미한다. 그 예시로는 Overloading, Overriding이 있다.

Overloading(오버로딩)
  • 하나의 클래스 안에서 같은 이름의 메소드를 사용하지만, 각 메소드마다 다른 용도로 사용되는 것이다.
Overriding(오버라이딩)
  • 하위 클래스가 상위 클래스에서 만들어진 메소드를 재정의 하는 것을 의미한다.

참고
https://ee2ee2.tistory.com/entry/JAVA-OOP%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%ED%8A%B9%EC%A7%95-%EC%9E%A5%EB%8B%A8%EC%A0%90%EC%B6%94%EC%83%81%ED%99%94%EB%8B%A4%ED%98%95%EC%84%B1%EC%BA%A1%EC%8A%90%ED%99%94%EC%83%81%EC%86%8D

0개의 댓글