ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ABAP] Class / Component / Object / Instance / Static
    Spring 2024. 1. 4. 19:20

    1. class 

    :  객체 지향 프로그래밍의 기본 단위, 데이터와 해당 데이터를 처리하는 메서드를 하나의 단위로 묶어놓은 것.

    명세서의 역할 을 하며, 객체를 생성하기 위한 템플릿으로 사용한다.

     

    실제 데이터가 아니라 데이터의 형식과 행동을 정의 !

     

    2. component

    : 클래스 내부에 속하는 구성요소들을 통칭하여 컴포넌트라고한다.

    attribute, method, event 등이 존재한다.

     

    3. object

    : 클래스를 기반으로 실제로 메모리에 할당되어 사용되는 것으로 클래스의 인스턴스를 의미한다.

    생성된 객체는 클래스의 속성과 매세드를 활용할 수 있다.

     

    그림으로 표현해보면...

    자동차 공장을 예시로 들어보자.

     

    자동차를 만드려면 일단 자동차를 만드는 방법을 정의해야한다.

    그걸 정의하는게 바로 class 다!

    필요한 부품과 기능들을 간략하게 적어보았다.

    그럼 여기서 바퀴와 핸들은 필요한 요소이고 전진하기 후진하기는 자동차에 필요한 기술이다.

     

    여기서 필요한 요소는 componet 중 attribute, 기술method라고 생각하면 편하다.

    그리고 이 attribute랑 method 등을 모두 포함해서 component 라고 한다.

     

    사실 명세서는 아무 의미가 없다.

    실제로 명세서를 보고 기능을 하는 자동차를 구현해야 의미가 있는것.

     

     

    이렇게 명세서를 보고 즉 class를 이용하여 실제로 기능을 하는

    클래스의 intance, object를 만들었다.

    이런 자동차를 class 하나당 여러대를 만들 수 있다.

     

    여러대의 자동차는 동일하게 바퀴,핸들 .. 그리고 전진하기 후진하기 등의 기능을 공통으로 가지고 있을 것이다.

    이렇게 클래스에서 모든 obj들이 사용할수있는 component를 INSTANCE COMPONENT라고 한다.

    instance componet와 상반된 개념은 STATIC !

     

    instance는 그럼 모든 오브젝트들이 접근할수 있는 component이고 static은 상반된 개념이니 class 내부에서만

    사용하는 component라고 생각하면 되겠다.

     

    예를 들면 내가 자동차를 몇 대 생성했는지 관리하고싶다고 가정하자.

    이제까지만든 자동차의 수는 각 자동차에게는 필요없는 데이터이다. 그러므로 static으로 정의해서 관리하면 되는 것이다.

     

    물론 자동차수도 component이다! 하지만 object들은 가질수 없는 static attribute라고 생각하면 된다.

     

Designed by Tistory.