[ABAP] LOCAL CLASS 생성 및 OBJECT 생성
저번에 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를 이용해서 객체를 만들어주면 된다 !
이런식으로 생성해주면 된다 !!