카테고리 없음

[ABAP] LOCAL CLASS 생성 및 OBJECT 생성

ye11 2024. 2. 6. 18:34

저번에 CLASS 용어를 한번 정리했었다.

2024.01.04 - [Spring] - [ABAP] Class / Component / Object / Instance / Static

 

[ABAP] Class / Component / Object / Instance / Static

1. class : 객체 지향 프로그래밍의 기본 단위, 데이터와 해당 데이터를 처리하는 메서드를 하나의 단위로 묶어놓은 것. 명세서의 역할 을 하며, 객체를 생성하기 위한 템플릿으로 사용한다. 실제

yellog03.tistory.com

 

이번엔 실제로 ABAP에서 클래스를 선언하고 객체를 생성해보자.

 

자동차 CLASS를 만드는데

 

PUBLIC에는

자동차의 특성을 설정하고, 설정한 특성을 보여주는 METHOD 2개와 (INSTANCE)

총 만든 자동차의 개수를  보여주는 METHOD 1개 (STATIC_

총 3개를 선언하고 

 

PRIVATE에는

자동차의 이름과 모델(특성) ,2개의 attribute (instance)

자동차의 총 갯수를 담을 데이터 1개 의 attribute (static)

출력 위치를 나타낼 상수 하나를 선언할 계획이다.

 

일단 프로그램을 만들고 class를 선언하자.

기본틀은 다음과 같다.

주의해야 할 점은 항상 public이 private 보다 먼저 와야한다.

범위가 넓은 것부터 선언해야 한다.

 

일단 선언부

 

attribute를 선언할때는 평소와 같이 DATA : 구문을 사용하여 선언하면 된다. 

다만 이 경우는 instance 타입일때고 static으로 attribute를 선언하고 싶다면

CLASS-DATA : 구문을 사용하여 선언 해주면 된다.

 

"Instance attribute
  DATA: MV_MAKE TYPE STRING,
        MV_MODEL TYPE STRING.

  "Static Attribute.
  CLASS-DATA: GV_O_N_VEHICLE TYPE I.

 

METHOD도 마찬가지.

INSTANCE를 선언할때는 그냥 METHODS: 가 오지만

STATIC을 선언할때는 꼭 앞에 CLASS를 붙여서 CLASS-METHODS:  를 이용한다.

 

또 하나 주의해야할점은 선언부에서 METHOD를 선언할때는 꼭 뒤에 S를 붙여야 한다는 점!

METHODS:
    SET_ATTRIBUTES IMPORTING IV_MAKE TYPE STRING
                             IV_MODEL TYPE STRING,

    DISPLAY_ATTRIBUTES.
 
 CLASS-METHODS: ISPLAY_O_N_VEHICLES.

 

METHOD는 IMPLEMENTATION에서 구현해주면 된다.

 

IMPLEMENT 내부에서는 S 없이 METHOD라고 쓰면 된다.

 

이제 객체를 생성해보자 엄청 쉬움.

 

객체로 만들 변수를 선언한 다음

 

CREATE OBJECT를 이용해서 객체를 만들어주면 된다 !

 

이런식으로 생성해주면 된다 !!