Corso ABAP OO 04

1,506 views

Published on

Quarta ed ultima parte di un corso sulla programmazione ABAP ad Oggetti tenuto da me

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,506
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
79
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Corso ABAP OO 04

  1. 1. ABAP OBJECTSQuarta parte
  2. 2. 2Agenda del corso• Dai function module agli oggetti• Definizione di una classe• Oggetti e metodi• Incapsulamento, ereditarietà, polimorfismo• Interfacce• Eventi
  3. 3. 3Agenda del corso• Dai function module agli oggetti• Definizione di una classe• Oggetti e metodi• Incapsulamento, ereditarietà, polimorfismo• Interfacce• Eventi
  4. 4. Interfacce• L’ABAP come il Java non permette l’ereditarietàmultipla• Con l’utilizzo delle interfacce è possibile in parteaggirare questo limite4
  5. 5. Interfacce• Le interfacce sono simili alle classi astratte mahanno solo la parte della definizione• Le interfacce sono definite come struttureindipendentiINTERFACE <nome_interfaccia>.…ENDINTERFACE.5
  6. 6. Interfacce• Un interfaccia può contenere sia componentiinstance che static.• All’interno di un interfaccia tutti i componenti sonoautomaticamente public e non si deve definireesplicitamente la sezione6
  7. 7. Interfacce• In un interfaccia è possibile definire i metodi manon la loro implementazione• Similmente a come una sottoclasse implementa imetodi di una classe astratta, cosi tutte le classiche usano l’interfaccia devono implementarne imetodi7
  8. 8. Interfacce• In ogni classe si possono implementare una o piùinterfacce• Più classi possono implementare la stessainterfaccia8
  9. 9. Interfacce• Un interfaccia deve essere dichiarata nella sezionepublic della classe che vuole usarlaINTERFACES <nome_interfaccia>• In questo modo tutti i componenti dell’interfacciavengono aggiunti alla classe• Le classi che usano l’interfaccia devonoimplementare tutti i metodi in essa definitiMETHOD nome_interfaccia~metodo9
  10. 10. Interfacce• Un interfaccia può contenere a sua volta un’altrainterfacciaINTERFACE <nome_interfaccia1>....ENDINTERFACE.INTERFACE <nome_interfaccia2>....INTERFACES <nome_interfaccia1>.ENDINTERFACE.10
  11. 11. Interfacce• Quando una classe usa un interfaccia che necontiene un’altra deve implementare ogni metododi ognuna delle due interfacce definite11
  12. 12. Interfacce• Il nome completo di un metodo di un interfacciaall’interno di una classe o di un’altra interfaccia è:nome_interfaccia~nome_metodo• Al fine di semplificare l’accesso ai moduli èpossibile definire degli aliasALIASES metodo FOR nome_interfaccia~nome_metodo12
  13. 13. Interfacce• Gli alias permettono di accedere ad un metodo diun interfaccia in modo direttoCALL METHOD oggetto->metodo• All’interno dell’implementazione della classetuttavia i metodi devono sempre essere richiamaticon il nome completo13
  14. 14. Interfacce• Come per le classianche le interfaccepossono essereusate perreferenziare unoggetto• E’ possibile eseguireil narrow cast ancheattraverso uninterfaccia14
  15. 15. Interfacce• Le interfacce permetto di usare differenti classi conlo stesso riferimento• Differenti classi possono implementare i metodi diun interfaccia in maniera differente fra loro15
  16. 16. Interfacce• Un interfaccia utilizzata in una superclasse vieneereditata dalla sottoclasse e questa puòimplementarne i metodi in modo differente16
  17. 17. Eventi• Gli eventi servono a gestire gli stati di unoggetto/classe e le loro variazioni in seguito adeterminate condizioni• Un evento può essere static e quindi riferito inmodo generico alla classe o instance e quindiproprio dell’oggetto17
  18. 18. Eventi• Un evento può essere dichiarato come public,protected o private• Gli eventi possono anche essere definiti all’internodi un interfaccia ed in questo caso sarannoobbligatoriamente public18
  19. 19. Eventi• Una classe può definire un metodo per generare unevento• La stessa classe o un’altra classe può definire unaltro metodo per gestire l’evento19
  20. 20. Eventi• Un evento deve essere definito nella sezioneDEFINITION della casseEVENTS <nome_evento>.• Un evento può avere solo parametri diEXPORTING e non deve essere implementatonella sezione di IMPLEMENTATION20
  21. 21. Eventi• Un evento può essere generato da qualsiasimetodo all’interno della classe con l’istruzioneRAISE EVENT <nome_evento>.• Una volta generato l’evento questo deve esseregestito per mezzo di un altro metodo21
  22. 22. Eventi• Qualsiasi classe può definire un metodo per gestireun evento sia che questo sia stato generato dallastessa classe che da un’altra• Un evento può avere diversi metodi di gestione alui associati22
  23. 23. Eventi• I metodi che gestiscono un evento devono esseredefiniti come:METHODS: <nome_metodo> FOR EVENT <nome_evento>OF CLASS <nome_classe>O:METHODS: <nome_metodo> FOR EVENT <nome_evento>OF INTERFACE <nome_interfaccia>23
  24. 24. Eventi• I metodi per la gestione dell’evento hanno soloparametri di IMPORTING• I parametri che sono dichiarati con l’eventovengono passati al metodo di gestione dell’evento• Tuttavia ogni metodo di gestione può decidere qualiparametri passati dall’evento utilizzare24
  25. 25. Eventi• I metodi che gestiscono un evento non possonoessere richiamati con una CALL METHOD• Essi vengono richiamati in automatico quandol’evento associato viene generato25
  26. 26. Eventi• Dopo che un evento è stato generato tutti i metodidi gestione dichiarati vengono eseguiti prima che sipassi all’istruzione successiva• La sequenza con cui i metodi di gestione vengonoeseguiti è la stessa in cui sono stati dichiarati26
  27. 27. Eventi• Il processo di registrazione è dinamico cioè vieneistituito il collegamento in fase di runtime• Per dichiarare il gestore di un evento si usal’istruzione:SET HANDLER oggetto->meth_gest_evento FOR oggetto.27
  28. 28. Eventi• I metodi per la gestione di un evento possono divolta in volta essere “attivati” o “disattivati”• Per attivare o disattivare un metodo di gestione siutilizza l’attributo ACTIVATION dell’istruzione SETHANDLER28
  29. 29. EventiSET HANDLER oggetto->meth_gest_eveventoFOR oggetto ACTIVATION = ‘X’.• Attiva un metodoSET HANDLER oggetto->meth_gest_eveventoFOR oggetto ACTIVATION = ‘ ’.• Disattiva un metodo29
  30. 30. Eventi• A runtime viene definita una struttura invisibile cheaccoglierà la lista dei metodi di gestione deglieventi e la loro sequenza di esecuzione• Un metodo per la gestione di un evento può a suavolta generare un altro evento30
  31. 31. Eventi31
  32. 32. ESSENTIA.COM srlVia Druento, 290 - 10078 Venaria Reale (TO)Tel.: 011 – 4560.511 fax: 011 – 4560.577Via Nizza, 56 – 00198 RomaTel.: 06 – 85305570 fax: 06 – 85800504Mail: inforoma@e-ssentia.itWeb: www.e-ssentia.comPowerd byBossù Piergiorgio

×