abap中的casting及?=


REPORT AA.

TYPES: BEGIN OF T_LINE,
         COL1 TYPE CHAR5,
         COL2 TYPE CHAR10,
         COL3 TYPE CHAR15,
       END OF T_LINE.

DATA: GV_ADDR(30) TYPE C VALUE 'CHINA BEIJING TWIN BUILDING'.

FIELD-SYMBOLS: <FS> TYPE T_LINE.
"若不使用Casting,則會產生數據類型不一致的錯誤,因為是結構類型,gv_addr是字符類型。
ASSIGN GV_ADDR TO <FS> CASTING.

WRITE:/ <FS>-COL1, <FS>-COL2, <FS>-COL3.

FIELD-SYMBOLS:<FS1> TYPE ANY.
ASSIGN GV_ADDR TO <FS1> CASTING TYPE T_LINE.
WRITE:/ <FS>-COL1, <FS>-COL2, <FS>-COL3.

CLASS VEHICLE DEFINITION .
  PUBLIC SECTION.
    METHODS:DRIVE.
  PROTECTED SECTION.
    DATA:SPEED TYPE I VALUE '100'.
ENDCLASS.

CLASS PLAN DEFINITION INHERITING FROM VEHICLE.
  PUBLIC SECTION.
    METHODS:FLY.
ENDCLASS.

CLASS VEHICLE IMPLEMENTATION.
  METHOD DRIVE.
    SPEED = SPEED + 100.
    WRITE:/ 'Driving is possible,','Current Speed:',SPEED.
  ENDMETHOD.
ENDCLASS.

CLASS PLAN IMPLEMENTATION.
  METHOD: FLY.
    SPEED = SPEED + 1000.
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  DATA:CAR TYPE REF TO VEHICLE.
  DATA:AIR TYPE REF TO VEHICLE.
  DATA:AIR1 TYPE REF TO VEHICLE.
  DATA:AIR2 TYPE REF TO VEHICLE.
  CREATE OBJECT:CAR. "里面的初始speed是100
  CREATE OBJECT:AIR1."里面的初始speed是100
  AIR2 = CAR."里面的初始speed是200 ,相當於已經執行一遍的CAR
  AIR ?= CAR."里面的初始speed是100 相當於根據類創建了一個與CAR相同的實例
  CALL METHOD AIR->DRIVE( ).
  CALL METHOD AIR1->DRIVE( ).
  CALL METHOD AIR2->DRIVE( ).

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM