2. Agenda del corso
• Dai function module agli oggetti
• Definizione di una classe
• Oggetti e metodi
• Incapsulamento, ereditarietà, polimorfismo
• Interfacce
• Eventi
2
3. Agenda del corso
• Dai function module agli oggetti
• Definizione di una classe
• Oggetti e metodi
• Incapsulamento, ereditarietà, polimorfismo
• Interfacce
• Eventi
3
4. Dai function module agli oggetti
Paradigmi di programmazione
• Programmazione Procedurale
• Programmazione Modulare
• Programmazione ad Oggetti
4
5. Dai function module agli oggetti
Programmazione
Procedurale
• Il concetto base è
quello di raggruppare
i pezzi di programma
ripetuti in porzioni di
codice utilizzabili e
richiamabili ogni volta
che se ne presenti
l'esigenza (Perform)
5
6. Dai function module agli oggetti
Programmazione
Modulare
• Le procedure aventi un
dominio comune (ad
esempio, procedure che
eseguono operazioni
matematiche) vengono
raggruppate in moduli
separati. (Call-Function)
6
7. Dai function module agli oggetti
Programmazione
Orientata agli Oggetti
• E’ basata sul fatto che
esistono una serie di
oggetti che interagiscono
vicendevolmente,
scambiandosi messaggi
ma mantenendo ognuno
il proprio stato ed i propri
dati
7
8. Dai function module agli oggetti
Programmazione ad Oggetti
• La programmazione orientata agli oggetti o OOP, è
una metodologia di programmazione la cui
caratteristica principale è il concetto di oggetto
• Nella OOP tutto si basa, in maniera uniforme, sul
concetto di Oggetto: ogni singolo programma, dal più
semplice al più complesso, si basa su un insieme di
Oggetti che interagiscono tra di loro
8
9. Dai function module agli oggetti
Ma cos'è alla fine un oggetto?
• Per capire cos’è un oggetto prendiamo spunto dalla
vita reale: un oggetto è un’automobile, un computer,
una casa, e così via
9
10. Dai function module agli oggetti
Ma cos'è alla fine un oggetto?
• Ogni automobile ha determinate caratteristiche:
colore, numero di porte, cilindrata, velocità massima,
modello, casa costruttrice e così via.
• Un'automobile però non è solo un oggetto statico, ma
può svolgere alcune azioni, come: svoltare a destra,
accelerare, frenare, cambiare marcia eccetera.
10
11. Dai function module agli oggetti
Programmazione ad Oggetti
• Nella terminologia OOP le caratteristiche di un oggetto
vengono chiamate attributi
• I metodi sono le operazioni che un oggetto è in grado
di compiere
• Un oggetto è quindi formato da attributi e metodi
11
12. Dai function module agli oggetti
Gli attributi di un Oggetto
• Gli attributi costituiscono lo stato di un oggetto, in altre
parole lo caratterizzano e permettono di distinguerlo
da un altro.
• Si tratta in definitiva delle "vecchie" variabili, con in più
alcune proprietà che andremo a descrivere più avanti.
12
13. Dai function module agli oggetti
I metodi di un Oggetto
• I metodi, o funzioni, o messaggi, caratterizzano invece
il comportamento di un oggetto, definiscono cioè come
questo oggetto si comporta, come modifica i propri
dati o come interagisce con altri oggetti.
13
14. Dai function module agli oggetti
Perché utilizzare il paradigma Object-Oriented?
• Migliore la qualità del software
• Scomposizione di programmi complessi in oggetti più
piccoli e semplici
• Manutenzione più semplice e veloce
• Riutilizzo del codice
14
15. Dai function module agli oggetti
• L’ABAP è un linguaggio di programmazione di
4° generazione
• Questo vuol dire che può essere utilizzato come un
linguaggio procedurale di 3° generazione ma che
rispetto ad essi ha maggiori potenzialità
15
16. Dai function module agli oggetti
• Nel linguaggio
ABAP classico la
cosa più simile
agli oggetti sono
i gruppi funzioni
16
17. Dai function module agli oggetti
• I dati globali del
gruppo possono
essere visti come
attributi
• I moduli funzione
(Call-Function)
possono essere
paragonati ai
metodi
17
18. Dai function module agli oggetti
• I dati globali del
gruppo possono
essere visti come
attributi
• I moduli funzione
(Call-Function)
possono essere
paragonati ai
metodi
18
19. Dai function module agli oggetti
• I dati globali del
gruppo possono
essere visti come
attributi
• I moduli funzione
(Call-Function)
possono essere
paragonati ai
metodi
19
20. Dai function module agli oggetti
• La differenza fondamentale è che un oggetto può
essere istanziato più volte mentre un gruppo funzioni
no
• In altre parole questo significa che non si possono
creare più copie delle variabili globali di un gruppo
funzioni
20
21. Dai function module agli oggetti
Istanziare un oggetto
• Ad un preciso oggetto assegniamo un nome:
chiameremo quindi un oggetto di classe automobile
auto1
• Quindi l’oggetto auto1 potrà essere così descritto:
- Velocità = 80
- Colore = rosso
- Marca = bmw
21
22. Dai function module agli oggetti
Istanziare un oggetto
• Un altro oggetto auto2 potrò avere le seguenti
caratteristiche:
- Velocità = 60
- Colore = nero
- Marca = fiat
• Quindi gli oggetti sono diversi a seconda del valore
assunto dalle loro caratteristiche, ma condividono la
stessa struttura
22
23. Dai function module agli oggetti
• L’ABAP Objects è un estensione del normale
linguaggio ABAP
• L’ABAP Objects compare per la prima volta nella
release 4.5 ma è ancora una versione incompleta
• A partire dalle release 4.6 vengono aggiunte
l’ereditarietà, e le interfacce
23