분류 전체보기 (122)
공지사항 (3)
주저리 주저리 (26)
Ubuntu (3)
개발관련 (37)
개발이야기 (6)
Language (20)
Framework (5)
Pattern (2)
DataBase (4)
Server (4)
Book (9)
스터디 (0)
STRUTS2  mylyn  ubuntu netbook remix  Head First Software Development  HFSD  oracle  다짐  Eclipse  db connection  자바 
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
+ dazzi님 블로그
+ 온 오프 믹스! (모임,세미…
+ kenu blog
+ OKJSP: 사는 얘기
+ 정호님 블로그
+ 존경하는회수형님
+ 자바지기님 블로그
+ 루비나라 출입구
+ 은정이누나 블롯
+ Total :
+ Today :
+ Yesterday :
  

 

 

 

10월8일
+   [Language/ABAP]   |  2009. 10. 12. 16:40  
10월8일 - 4주차 -1번

function 도 Encapsulation 이 된다.

Program 1개가  1의 Internal Table 을 사용한다.

Function Group 영역의

Global Data 는

Function Group 안의 Function Module이 호출되었을때 공유하게 된다.

~ 호출이 되는 순간에 Function Group 의 Data가 메모리에 올라오게 된다.


function 은 안되는데 .. Class 는 되더라..



바로 메모리에 올라가게 된다.



Example of a Function Group

FG

G : Speed.
FM1 : Inc-Speed.
FM2 : Des-Speed.
FM3 : get-Speed.

Instantiate.

The Object-Oriented Programming Model of ABAP Object.

작명 규칙

Super Class (부모)/              A: Class          zcl*(se24) 나중에
                                                   |             lcl* (se38) 현재
                                     ┌-------┼ -------┐
Sub Class (자식) / A'Class      A"Class     A^Class  '



polymorphism:

상속을 받은 Class들에 똑같은 행위를 요청하여도 그들이 하는 행위의 형태는 다르다.


OOP의 SPEC 에 관하여... 그리고 설계 하는 방법.!

UML 사용...

Unified Modeling Language

Class 에서

Define 은  Method & Attribute

Implement 는 Method  로 만들어 진다 하네요.

composition : 부분이 값으로 전체를 구성하거나 전체에 포함되면 composition.

aggregation : 부분이 참조로 전체를 구성하거나 전체에 포함되면 aggregation.


association [əsòusiéi∫ən, -∫i-]
1. 협회 (society) , 조합, 단체, 사단 (社團) , 회사, 결사 (結士)
2. U 연합, 합동, 공동;관련 《with》 ; 《완곡》 기업 연합, 담합 《with》
3. U 교제, 제휴, 연락 《with》 ; 《완곡》 혼외 정사, 불륜 《with》
4. U,C 【심리】 연상, 관념 연합;함축, 암시적 의미; 【수학】 조합; 【화학】 (분자의) 회합
5. =ASSOCIATION FOOTBALL
6. 【생태】 (생물) 군집

aggregation [æ̀grigéi∫ən]
1. U 집합, 집성 (集成) , 집적 (集積)
2. 집합체, 집단; 【야구】 팀~·al a.


composition [kɑ̀mpəzí∫ən] [kɔm-]
1. U 구성, 조립, 합성, 혼성
2. U,C 【인쇄】 식자, 조판
3. 구성물;합성물, 혼합물;모조품 《흔히 생략해서 compo라 함》 ; (합성) 성분
4. 한 편의 작문, 문장;악곡
5. U,C 배합, 배치 (arrangement) ; 【미술】 구도
6. U 작문 (법) , 작시 (법) ;문체; 【음악】 작곡 (법)
7. U (물질의) 구조, 조성 《of》
8. U 기질, 성질, 자질
9. 【법】 조정, 타협, 화해 《with》 ;화해금
10. U 【문법】 (단어의) 복합 (법) , 합성


recursive [rikəˊːrsiv]
1. 【수학】 순환의
2. 되풀이되는, 재귀하는
3. 【컴퓨터】 순환적인, 반복적인, 회귀적인~·ly ad. ~·ness n.




포인팅 하는 법.

REPORT  z08_kdn_oop_1.

INCLUDE z08_kdn_oop_1top.
DATA: r_veh  TYPE REF TO lcl_vehicle.

DATA: r_tab TYPE TABLE OF REF TO lcl_vehicle.

START-OF-SELECTION.

  DO 3 TIMES.
    CREATE OBJECT r_veh.
    IF sy-index EQ 3.
      r_veh->carrid = 'AA'.
    ENDIF.
    APPEND r_veh TO r_tab.
  ENDDO.

  LOOP AT r_tab INTO r_veh.
    WRITE: / r_veh->carrid.
  ENDLOOP.

 
 
 
  이게 자바로는 이쯤 될 것 같은데.~ 5.0 이상 버젼으로...
 
class lcl_vehicle{
  public scarr-carrid carrid = "LH";
}

import lcl_vehicle
class  z08_kdn_oop_1{
   lcl_vehicle r_veh;
   ArrayList<lcl_vehicle> r_tab = new ArrayList<lcl_vehicle>;
  public static void main(){
      for(i=0;i<3;i++){
        r_veh = new lcl_vehicle();
        if(i == 3){
            r_veh.carrid = "AA";
            
        }
      }   
  }
}


* 금기시 되는 선언 ...
1. Header Line 을 가진 Internal Table
2. Tables 도 안됨
3. Data 선언을 할 때  like Spfli  는 안 됨.


* 자 그럼 하나  해보자!( 예제..)

*&---------------------------------------------------------------------*
*& Report  Z08_KDN_OOP_1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  z08_kdn_oop_1.

INCLUDE z08_kdn_oop_1top.

DATA: r_tab TYPE TABLE OF REF TO lcl_vehicle.
DATA: r_veh TYPE REF TO lcl_vehicle.

START-OF-SELECTION.

  PERFORM select_vehicle USING 'AA'.
  PERFORM select_vehicle USING 'LH'.

  LOOP AT r_tab INTO r_veh.
    LOOP AT r_veh->it1 INTO r_veh->wa1.
      WRITE: / r_veh->wa1-carrid , r_veh->wa1-connid,
               r_veh->wa1-cityfrom , r_veh->wa1-cityto.
    ENDLOOP.
  ENDLOOP.



*&---------------------------------------------------------------------*
*&      Form  select_spfli
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0080   text
*      -->P_R_TAB  text
*----------------------------------------------------------------------*
FORM select_vehicle  USING  f_carr TYPE spfli-carrid.
  CREATE OBJECT r_veh.
  SELECT *
    FROM spfli
    INTO TABLE r_veh->it1
   WHERE carrid EQ f_carr.
  APPEND r_veh TO r_tab.
ENDFORM.                    " select_vehicle



36 Page

* readonly는 변경할 수 없지만 ... method 가 실행되면 값을 변경하는게 가능하다.



Attribute(Data) 나 Method(Function) 을 참조하는 방식
1. ClassName => xxx

2. instanceName->xxx


이렇게 가능하다.

method 에 대해서 배워보자.

REPORT  z08_kdn_oop_3.
INCLUDE z08_kdn_oop_top3.

DATA: r_veh TYPE REF TO lcl_vehicle.

START-OF-SELECTION.
  CREATE OBJECT r_veh.

  r_veh->get_count( ).

  CALL METHOD r_veh->get_count.


 

*&---------------------------------------------------------------------*
*&  Include           Z08_KDN_OOP_TOP3
*&---------------------------------------------------------------------*
CLASS lcl_vehicle DEFINITION.
  PUBLIC SECTION.
    METHODS: get_count.

  PRIVATE SECTION.
    CONSTANTS: count TYPE i VALUE 10.
ENDCLASS.                    "lcl_vehicle DEFINITION
*----------------------------------------------------------------------*
*       CLASS lcl_vehicle IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_vehicle IMPLEMENTATION.
  METHOD get_count.
    WRITE: / count.
  ENDMETHOD.                    "get_count
ENDCLASS.                    "lcl_vehicle IMPLEMENTATION




** static method 는      class 명 => sm( )
                               Instance명 -> sm( )

** Static Attribute는?

Static 은 memory 상의 한 영역에만 존재한다.








 
 
        

별책부록's Blog is powered by Daum