ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA | 객체 지향 프로그래밍(OOP : Object Oriented Programming)
    programming/JAVA 2020. 5. 15. 00:27

     

     

    객체 지향 프로그래밍(OOP : Object Oriented Programming)이란?

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

    객체 지향 프로그래밍(OOP : Object Oriented Programming) 이라고 한다.

     

     

    객체

    • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것
    • 속성과 동작으로 구성되어 있으며 자바는 각각 필드와 메소드라고 부른다.
    • 객체들 사이의 상호작용 수단은 메소드이며 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출이다.

     

     

    객체 간의 관계

    • 집합 관계 - 하나의 객체는 부품이과 하나는 완성품에 해당하는 관계
    • 사용 관계 - 객체 간의 상호작용을 말한다. 객체는 다른 객체의 메소드를 호출하여 원하는 결과를 얻어낸다.
    • 상속 관계 - 상위(부모) 객체를 기반으로 하위(자식) 객체를 생성하는 관계를 말한다.
                     일반적으로 상위 객체는 종류를 의미하고, 하위 객체는 구체적인 사물에 해당한다.
                     ex) 자동차(하위)는 기계(상위)의 종류이다. 

     

     

    객체 지향 프로그래밍(OOP : Object Oriented Programming)의 특징

    • 캡슐화
      객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다.
      즉 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다.
      객체의 데이터를 외부에서 직접 접근하지 못하게 막고 함수를 통해서만 조작이 가능하게 하는 작업 (정보 은닉)

    • 상속
      상속 관계에 있는 두 클래스에 대해, 부모(상위) 객체가 자식(하위) 객체에게 속성을 물려주는 것이다.
      상위 객체를 재사용해서 하위 객체를 쉽고 빠르게 설계할 수 있도록 도와준다. (코드의 재사용)
      반복된 코드의 중복을 줄여주고, 개발 시간 절약, 유지 보수 시간 최소화


    • 다형성
      같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질
      오버라이딩(Overriding), 오버로딩(Overloading)이란 형태로 제공된다.

      * 오버라이딩(Overriding)
      상위 클래스(부모 클래스)가 가지고 있는 메소드를 하위 클래스(자식 클래스)에서
      재정의하여 사용하는 것
      메소드의 이름은 같으며 매개 변수 타입과 매개변수가 같다.

      자식 클래스에서 부모 클래스의 메소드를 오버라이딩 하게 되면, 부모 클래스의 메소드는 숨겨지고 오버라이딩 된 자식 메소드만 사용된다. 그러나 자식 클래스 내부에서 오버라이딩된 부모 클래스의 메소드를 호출해야 하는 상황이 발생한다면 명시적으로 super 를 붙여서 부모 메소드를 호출할 수 있다.  super는 부모 객체를 참조하고 있기 때문에 부모 메소드에 직접 접근할 수 있다.
      ex) super.부모메소드();


      * 오버로딩(Overloading)
      같은 이름의 메소드를 여러 개 가지면서 매개 변수를 다르게 정의하는 것 

      ex) 생성자 오버로딩
      Car(){}
      Car(String model){ this.model = model; }
      Car(String model, String color){this.model = model; this.color = color;}

     

     

     

     

    참고자료 - 이것이 자바다

Designed by Tistory.