Cute Running Puppy
본문 바로가기
개발일기/Java

객체지향 프로그래밍(OOP)

by 징구짱 2023. 5. 30.
728x90

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

프로그래밍에서 필요한 데이터를 추상화하여 객체라는 단위로 표현하고, 객체들 간의 상호작용을 중심으로 프로그램을 구성하는 개발 방법이다.

객체 지향 프로그래밍의 장점은 코드의 재사용을 통해 반복적인 코드를 최소화하고, 코드를 최대한 간결하게 표현할 수 있어 코드의 변경을 최소화하고 유지보수를 하는 데 유리하다.

 

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

  1. 추상화(Abstration)
    객체의 공통적인 속성과 기능을 추출하여 정의하는것
    을 의미한다.
  2. 캡슐화 (Encapsulation) 
    객체의 상태(data)와 행위(method)를 하나로 묶고, 외부에는 내부 구현을 감추는 것을 의미한다. 캡슐화는 접근 제어자를 통한 접근에 제한을 두며, 객체의 내부 동작 방식을 숨기고 외부에서 사용하기 쉬운 인터페이스를 제공한다.
    이를 통해 높은 응집도와 낮은 결합도를 유지한다. 즉, 한 곳에서 변화가 일어나도 다른곳에 미치는 영향을 최소화한다.
  3. 상속 (Inheritance)
    이미 존재하는 클래스로부터 속성과 메서드를 상속받아 새로운 클래스를 생성하는 것을 의미한다. 부모 클래스의 속성과 기능을 그대로 이어받아 사용하거나 필요에 따라 수정하여 사용할 수 있다. 상속을 통해 코드의 재사용성을 높이고, 계층적인 관계를 구성할 수 있다.
  4. 다형성 (Polymorphism)
    한 가지 타입 또는 인터페이스를 구현하는 여러 객체들이 동일한 메서드를 다양한 방식으로 구현하고 실행될 수 있는 특성이다. 다형성을 통해 코드의 유연성과 확장성을 높일 수 있다. 다형성은 오버로딩(Overloading)과 오버라이딩(Overriding)으로 구현된다.

    • 오버라이딩 : 부모클래스의 메서드와 같은 이름, 매개변수를 재정의 하는것.
    • 오버로딩 : 같은 이름의 함수를 여러개 정의하고, 매개변수의 타입과 개수를 다르게 하여 매개변수에 따라 다르게 호출할 수 있게 하는 것.
728x90