401-2 (오전)

Beemajor·2024년 8월 13일

싱글톤 = 객체가 하나만 있는 것
class로 여러개 찍어 낼 수 있는데 싱글톤은 하나로 제한하는 것이다.

  • 절차적 언어는 프로그램의 흐름을 명령어와 함수 중심으로 설계하며,
    객체지향 언어는 객체와 클래스를 중심으로 설계합니다.

  • 절차적 언어는 데이터와 함수를 분리하여 관리하는 반면,
    객체지향 언어는 데이터와 메서드를 객체 단위로 묶어 관리합니다.

  1. 절차적 언어 (Procedural Programming)
    구조: 프로그램은 명령어의 순서대로 실행되는 절차(또는 함수)의 집합으로 구성됩니다.
    핵심 개념: 함수(또는 서브루틴)를 사용해 코드의 재사용성을 높이고 프로그램의 논리적 흐름을 명확히 합니다.
    주요 특징:
    순차적 흐름: 코드가 위에서 아래로 순차적으로 실행됩니다.
    함수: 특정 작업을 수행하는 함수를 작성하여 코드의 중복을 줄이고 모듈화를 쉽게 합니다.
    데이터와 함수 분리: 데이터와 함수를 분리하여 관리합니다.
    예시 언어: C, Pascal, Fortran 등이 있습니다.
  1. 객체지향 언어 (Object-Oriented Programming)
    구조: 프로그램은 객체(object)라는 단위로 구성되며, 객체는 데이터(속성)와 이를 조작하는 함수(메서드)를 함께 포함합니다.
    핵심 개념: 객체, 클래스, 상속, 다형성, 캡슐화 등의 개념을 사용하여 코드의 재사용성, 확장성, 유지보수성을 높입니다.

"- 는 private 이라는 뜻, 외부에서 직접 변경하거나 직접 차용할 수 없다.
"+ 는 Public 이라는 뜻, 외부에서 언제든 변경하거나 차용할 수 있다.

metod는 보통 외부에서 사용하기에 + 즉, public으로 사용하지만
-, 즉 내부에서 처리하여 private으로 사용하는 경우도 있다.

definition에서는 class를 정의하고,
implement에서 class를 정의하며 작성한 metod를 자세히 구현한다.

cl 머시기 하면서 쓰는 스탠다드들이 미리 만들어진 클래스들이다

z로 시작하는 글로벌 class 를 만들어볼까?
se24라는 T-code로 들어가서 만드는 글로벌 class 순서

속성먼저 정의해준다,


속성을 다 정의한 모습

constructor는 버튼을 눌리면 생긴다.
더블 클릭 하면 implement 즉 method 설정이 가능하다.

읽어올 파라메터 설정을 위해 좌측 상단에 parametor를 눌려주면
현재와 같은 화면이 나온다.

아까 말했던 더블 클릭 하면 설정할 수 있는 implement 이다.

signature를 누르면 이전에 설정한 parametor를 볼 수있다.


method~endmethod에서는 perform을 쓸 수 없다.
(단 글로벌 클래스는 프로그램에 잇는게 아니라 쓸 수 없는것이고 그냥 로컬클래스에서는 쓸수있다.)




ALV와 똑같은 원리입니다.

private method도 보이지만 쓸 수 는 없습니다.


returing은 exporting 과 같이 쓰지 않습니다.
returing은 하나만 내보낼 수 있기 때문이죠.
returing은 값을 주기위해 쓰는 것이다. 그렇기에 returing value()가 되는 것임.
if문이나 case문 같이 한줄로 구현해야할때 쓰는 것입니다.


gv_info = go_air->get_info( ). ( )안에 뛰어쓰기 항상 고려하세요.
( )안에 쓰는 경우와 안쓰는 경우는 뭐지 여기서는 안썼잖아
근데 importing이나 exporting은 괄호안에 쓰는데? 흐음.

instance는 객체라는 뜻, instanxe attribute = 객체속성
static은 class라는 뜻, static attribute = class attribute = class 속성

class method는 instance각자는 사용할 수 없는 method,
하지만 class의 attribute를 설정할 수 있어서 사용함.
class method만 사용한다는 뜻은 객체를 안만들겠다는 뜻. (적절히 구별해 쓰자)


패턴을 쓰고 안쓰고의 차이입니다.
optional을 주게 되면 파라메터를 안줘도 오류가 안나서 헷갈릴 수 있습니다.

서로 다른 class라면 casting이 불가능합니다.
같은 class의 객체들에게만 casting이 가능합니다.
1번 프로그램은 실행될때마다 Data가 자동 초기화된다.


원래 객체변수가 객체를 생성하고 더이상 객체변수가 객체를 REF하지 않으면
객체는 사라진다.
하지만 이렇게 사라지는 객체를 남기고 싶으면 이터널 테이블에 저장하면 됩니다.
이터널 테이블에서 REF를 유지하기 때문에 객체는 사라지지 않습니다.

-> 이건 객체변수 뒤에
=> 이건 클래스이름 뒤에

SAP ABAP 프로그램에서 화면 이벤트 처리 순서는 일반적으로 PBO (Process Before Output) → Screen → PAI (Process After Input)의 흐름으로 진행됩니다. 하지만 ABAP 프로그램에서 AT SELECTION-SCREEN OUTPUT, AT SELECTION-SCREEN, START-OF-SELECTION 이벤트가 어떤 순서로 나타나는지에 따라 프로그램의 실행 순서가 혼동될 수 있습니다.

각 이벤트 블록의 역할

  • AT SELECTION-SCREEN OUTPUT (PBO):
    이 이벤트는 출력 화면이 그려지기 전에 실행됩니다. 여기에서 화면 요소를 동적으로 수정하거나, 기본 값을 설정하는 등의 작업을 수행합니다.
  • AT SELECTION-SCREEN (PAI):
    이 이벤트는 사용자가 입력한 값을 처리하기 전에 실행됩니다. 사용자가 특정 값을 입력했을 때 유효성 검사를 하거나, 조건에 따라 추가 로직을 수행할 수 있습니다.
  • START-OF-SELECTION:
    이 블록은 사용자가 화면에서 데이터를 입력하고 'Execute' 버튼을 눌렀을 때, 즉 메인 프로그램 로직이 시작될 때 실행됩니다. 화면 입력을 기반으로 실제 작업을 수행합니다.
profile
i'm Graphic Designer

0개의 댓글