Professional Documents
Culture Documents
Introduzione
Il modello a oggetti
La programmazione a oggetti
I linguaggi a oggetti
2
!
Il paradigma a oggetti
I concetti fondamentali:
" oggetto
" astrazione
" classe
" incapsulamento
" ereditariet
" polimorfismo - late binding
" delegazione
Oggetti
" Esempi (in unaula universitaria): le sedie, gli studenti che le occupano,
il professore che tiene la lezione, il corso seguito dagli studenti.
" una identit (OID, Object IDentifier) che gli viene associata allatto della
creazione, non pu essere modificata ed indipendente dallo stato
corrente delloggetto
" uno stato definito come linsieme dei valori assunti a un certo istante da
un insieme di attributi
" un comportamento definito da un insieme di operazioni
Oggetti (2)
stato:
esame di Analisi
svolto il 3.3.2001
voto 30/30
comportamento:
stampa verbale
trasmetti in segreteria
stato:
Mark
stato:
nato il 12.12.1980
Ann
celibe
nata
il 22.2.1982stato:
matricola XXX
nubile
Carl
comportamento:
matricola YYY
nato il 7.7.1979
mangia
comportamento:
sposato
dorme
stato:
mangia
matricola
ZZZ
si iscrive a corso
John
dorme
comportamento:
sostiene esami
nato il 2.2.1968
si iscrive a corso mangia
sposato
sostiene esami
dorme
prof. associato
si iscrive a corso
comportamento:
sostiene esami
mangia
dorme
gli attributi esistono nel mondo reale,
tiene corso
gli
identificatori no
tiene esami
9
Operazioni e interfaccia
10
Astrazione
11
12
Classe
13
Classe (2)
attributi:
corso
data
voto
operazioni:
stampa verbale
trasmetti in segreteria
DOCENTE
STUDENTE
ESAME
attributi:
nome
data nascita
stato civile
ruolo
operazioni:
mangia
dorme
tiene corso
tiene esami
attributi:
nome
data nascita
stato civile
num. matricola
operazioni:
mangia
dorme
si iscrive a corso
sostiene esami
14
15
Modularit
16
Incapsulamento
Vantaggi dellincapsulamento
18
Operazioni e Metodi
19
Ereditariet
!
20
Ereditariet (2)
" gli oggetti istanze di B possano a tutti gli effetti essere utilizzati al
posto di oggetti istanze di A (ad esempio, uno studente una
persona).
" Non vero il contrario (non detto che una persona sia uno
studente).
21
Polimorfismo
22
Polimorfismo (2)
class quadrato:figuraGeometrica
{ int lato; int angolo
}
class cerchio:figuraGeometrica
{ int raggio;
}
23
run-time
24
Delegazione
25
Un esempio
parte di
usa
automobile
carburante
un
un
usa
benzina
un
parte di
motore
ruota
Testarossa
usa
Panda
26
27
28
!
!
!
"
"
"
29
Object-oriented analysis
Qual la responsabilit
di ciascuna classe?
Attivit:
Object-oriented design
Come gestir la classe
le sue responsabilit?
Come comunicheranno
le classi tra loro?
Attivit:
In un buon design
!
!
!
!
!
!
Booch OOD
Coad-Yourdon OOA/OOD
Jacobson OOSE
Rubin-Goldberg OBA
Rumbaugh OMT
Shlaer-Mellor OOA
..
32
Approccio funzionale
Principali problemi:
e approccio a oggetti
La produttivit alta
" Fasi diverse dellanalisi dei requisiti e del ciclo di vita possono
essere svolte contemporaneamente.
35
In conclusione
" sono scritti in termini di oggetti del mondo reale; questo fa s che
siano pi semplici da capire, ma rende pi difficoltoso il loro
progetto iniziale;
" incoraggiano l'incapsulamento: i dettagli dell'implementazione di
un oggetto sono nascosti al suo utilizzatore;
" incoraggiano la modularit; questo significa che "porzioni" di
programma non dipendono da altre porzioni del programma
stesso e possono essere riutilizzate rendendo pi semplice la
realizzazione dei nuovi progetti.
36
In conclusione (2)
37