ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체 지향 프로그래밍의 개념 및 4가지 특징
    WEB & CS 2023. 10. 10. 22:13

    객체 지향 프로그래밍

    • 프로그램을 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임
    • 프로그램의 일부분에 해당하는 객체를 먼저 만들고, 만들어진 객체들을 조립해 하나의 완성된 프로그램을 만드는 프로그래밍 방법론

     

    객체지향 장점

    • 프로그램을 유연하고 변경이 용이하게 만들 수 있다.
      • 문제가 생긴 해당 객체의 코드만 변경하기 때문에 코드수정 최소화하고 유지보수하는데 유리하다.
    • 코드 재사용을 통해 반복적인 코드를 최소화하고 코드를 간결하게 표현할 수 있다.

     

    객체지향 4가지 특징

    1. 추상화
      • 객체의 공통적인 속성과 기능을 추출하여 정의하는 것
      • 추상클래스와 인터페이스가 대표적인 문법이다.
      • 객체가 수행하는 핵심적인 역할만 규정하고 추상클래스와 인터페이스를 상속받아 실질적인 코드를 작성
      • 유연하고 변경에 열려있는 프로그램을 설계하기 위해 역할과 구현을 분리한다.
    2. 상속
      • 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 문법
      • 클래스간 공유될 수 있는 속성과 기능을 상위클래스로 추상화시키고 하위클래스가 상속을 받아 상위클래스의 속성과 기능들을 간편하게 사용할 수 있도록 한다.
      • 클래스 간 공유하는 속성과 기능을 반복적으로 정의할 필요없이 재사용이 가능해 반복적인 코드를 최소화하고 속성과 기능에 접근이 간편하다.
      • 메서드 오버라이딩을 사용하여 내용을 재정의 가능
      • 추상화와 차이점
        • 추상화는 상위 내용이 하위에 반드시 정의
        • 상속은 상위 내용이 하위에 선택적으로 정의
    3. 캡슐화
      • 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것
      • 외부로부터 클래스에 정의된 속성과 기능을 보호하기 위해 사용
      • 내부 동작을 감추고 외부에 필요한 부분만 노출하기 위해 사용
      • 접근제어자와 getter/setter를 활용해 구현한다.
    4. 다형성
      • 어떤 객체의 속성이나 기능이 상황에 따라 여러가지 형태를 가질 수 있다.
      • 대표적인 예로 메서드 오버라이딩과 메서드 오버로딩이 있다.
        • 메서드가 상황에 따라 재정의된다.
      • 상위 클래스 타입의 참조변수로 하위 클래스의 객체를 참조할 수 있도록 하는 것
        • 하나의 타입만으로 여러 가지 타입의 객체를 참조할 수 있어 보다 간편하고 유연하게 코드를 작성하는 것이 가능
    public class Main {
        public static void main(String[] args) {
            // 기존의 객체 생성
            Car car = new Car();
            Bike bike = new Bike();
            
            // 다형성을 적용 (상위클래스 타입의 참조변수로 하위클래스 객체를 참조하는 것)
            Vehicle car = new Car();
        }
    }

     

     

    출처)

    https://www.codestates.com/blog/content/%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-%ED%8A%B9%EC%A7%95

Designed by Tistory.