Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fondamenti di Informatica
Contenuti
Program mi e program mazione
La program m azione orientata agli oggetti
oggetti software
comportamento e stato
metodi e variabili
classi
Fondamenti di Informatica
Cosa un programma
Un progra m m a una frase che descrive delle azioniche devono essere
svolte da un calcolatore
La frase deve essere dettagliata e non ambigua
per questo motivo ciascun program ma viene scritto utilizzando un
linguaggio specializzato,formale e comprensibile da parte di un
calcolatore, chiamato linguaggio di progra m mazione
Lesecuzione di un program ma da parte di un calcolatore lo
svolgimento delle azioniin esso descritte
Fondamenti di Informatica
Cosa la programmazione
La program m azione lattivit di scrittura di programmi
un progra m m atore una persona che scrive program mi
Program mazione controllo
un calcolatore fa esattamente quello che gli dici difare
Program mazione insegna mento
un calcolatore impara a fare nuove cose solo se gli dici come
Program mazione risoluzione di proble mi
un calcolatore normalmente usato per fare cose utili
Program mazione creativit
pi facile descrivere un problema che trovarne la soluzione
Fondamenti di Informatica
Cosa la programmazione
Program mazione rappresentazione
un program m a rappresenta in un calcolatore un sistema complesso
reale o virtuale
Program mazione astrazione
deviidentificare le caratteristiche essenziali del sistema da
rappresentare, evitando di perderti nei dettagliinutili
Program mazione concretezza
ilcalcolatore per eseguire ciascun compito necessita diistruzioni
dettagliate
Fondamenti di Informatica
hardware
sistema operativo
strumenti di
program mazione
program mi applicativi
Fondamenti di Informatica
utente
7
program matore
La programmazione orientata agli oggetti
Fondamenti di Informatica
Fondamenti di Informatica
Oggetti software
Gli oggetti software sono antropomorfi
un oggetto software capace difare delle cose di eseguire delle
azioni specifiche
un oggetto software simile a un letto che sa rifarsi da solo
oppure a una porta che sa aprirsi e chiudersi
un oggetto software fa solo le cose che gli vengono richieste
esplicitamente
le richieste sono fatte da altri oggetti software
Fondamenti di Informatica
Un oggetto reale
10
Fondamenti di Informatica
Oggetti e comportamento
Fondamenti di Informatica
Oggetti e messaggi
Co me posso chiedere altelevisore di comportarsi come voglio ?
come posso chiedergli diaccendersi, disintonizzarsi su un canale,
di variare il volume, di spegnersi ?
Premendo un tasto deltelecomando, che gliinvia un comando sotto
forma di segnale elettromagnetico
Fondamenti di Informatica
13
Fondamenti di Informatica
14
Fondamenti di Informatica
15
Fondamenti di Informatica
Implementazione di oggetti
Fondamenti di Informatica
Oggetti software
Nella program mazione orientata agli oggetti, gli oggetti software sono
le componenti dei programmi
un program m a rappresenta un sistema come una collezione di
oggetti software che interagiscono
gli oggetti software interagiscono, cooperando, per ottenere il
comportamento complessivo desiderato
gli oggetti software cooperano inviandosi messaggi
17
Fondamenti di Informatica
Oggetti software
Molti oggettisoftware corrispondono a oggettireali
un documento, un libro, uno studente
Altri oggetti software corrispondono a entit concettuali
una equazione, una sequenza di caratteri, un esame
Altri oggetti software sono completamente virtuali, eintrodottisolo per
esigenze realizzative
una finestra o un cursore sullo schermo
18
Fondamenti di Informatica
Oggetti software
Un esempio di oggetto software
una equazione di secondo grado
19
Fondamenti di Informatica
20
Fondamenti di Informatica
Notazione grafica
un oggetto software rappresentato da un rettangolo, suddiviso in
pi parti
la parte alta riporta il nome delloggetto, sottolineato
la parte bassa riporta linterfaccia delloggetto la descrizione
delle cose che loggetto sa fare
21
Fondamenti di Informatica
risolviti()
Notazione grafica
una freccia e un messaggio rappresentano linvio diun messaggio a
un oggetto
22
Fondamenti di Informatica
23
Fondamenti di Informatica
24
Fondamenti di Informatica
25
Fondamenti di Informatica
26
Fondamenti di Informatica
Fondamenti di Informatica
lo schermo
visualizza(-1,-1)
...
visualizza(...)
...
Fondamenti di Informatica
29
Fondamenti di Informatica
Oggetti software
Esempio di alcuni oggetti software in un sistema software
la porsche
Paola Neri
marca = "Porsche"
modello = "Carrera"
cilindrata = 2500
targa = "BC 555 AZ"
possessore = Paola Neri
nome = "Paola"
cognome = "Neri"
et = 34
professione = "manager"
...
...
la macchina di Mario
rr
marca = "Fiat"
modello = "Bravo"
cilindrata = 1600
targa = "AB 777 KK"
possessore = Mario Rossi
...
30
...
La programmazione orientata agli oggetti
Fondamenti di Informatica
la porsche
Paola Neri
marca = "Porsche"
modello = "Carrera"
cilindrata = 2500
targa = "BC 555 AZ"
possessore = Paola Neri
nome = "Paola"
cognome = "Neri"
et = 34
professione = "manager"
...
31
...
La programmazione orientata agli oggetti
Fondamenti di Informatica
32
Fondamenti di Informatica
la porsche
marca = "Porsche"
modello = "Carrera"
cilindrata = 2500
targa = "BC 555 AZ"
possessore = Paola Neri
...
la macchina di Mario
rr
marca = "Fiat"
modello = "Bravo"
cilindrata = 1600
targa = "AB 777 KK"
possessore = Mario Rossi
...
33
...
La programmazione orientata agli oggetti
Fondamenti di Informatica
Classi
Una classe la descrizione di un insieme di oggetti software con
caratteristiche simili
una classe descrive le caratteristiche simili di un insieme di oggetti
software
ne specifica le propriet
ne specifica le cose che sanno fare
Automobile
marca : String
modello : String
cilindrata :int
targa : String
possessore : Persona
...
34
Fondamenti di Informatica
35
Fondamenti di Informatica
Classi e istanze
Una classe anche la fabbrica degli oggetti software di quella categoria
Una istanza un oggetto software di una classe
costruito sulla base di ci che specificato dalla classe
la costruzione di un oggetto software da una classe si chiama
creazione o istanziazione delloggetto software
gli oggetti software creati(istanziati) da una classe sichiamano
istanze della classe
36
Fondamenti di Informatica
Classi e istanze
La classe Automobile con una sua istanza
...
Automobile
la porsche : Automobile
marca : String
modello : String
cilindrata :int
targa : String
possessore : Persona
marca = "Porsche"
modello = "Carrera"
cilindrata = 2500
targa = "BC 555 AZ"
possessore = Paola Neri
...
Notazione grafica
accanto al nome delloggetto software viene indicato anche il nome
della classe
37
Fondamenti di Informatica
Istanze
Ciascuna istanza di una classe simile alle altre istanze della classe
tutte le istanze di una classe hanno le stesse variabilie gli stessi
metodi
Ciascuna istanza di una classe diversa dalle altre istanze della classe
ogniistanza ha un proprio identificatore univoco
ogniistanza caratterizzata da un proprio stato
38
Fondamenti di Informatica
Oggetti
Qual la differenza tra itermini oggetto software e istanza ?
Finora abbiamo parlato di
oggetto software indipendentemente dal concetto di classe
istanza di una classe in modo indissolubilmente legato al
concetto di classe
In realt, non possono esistere oggetti software che non sono istanze di
classi
esistono solo oggetti software che sono creati da classi
itermini oggetto software e istanza sono sinonimi
dora in poi, parleremo semplicemente di oggetti
39
Fondamenti di Informatica
40
Fondamenti di Informatica
Studente
pierino : Studente
nome : String
cognome : String
matricola :int
nome = "Pietro"
cognome = "Belli"
matricola = 352
presentati()
41
presentati()
Fondamenti di Informatica
42
Fondamenti di Informatica
Studente
pierino : Studente
nome : String
cognome : String
matricola :int
prossimaMatricola = 353
presentati()
assegnaMatricola()
43
nome = "Pietro"
cognome = "Belli"
matricola = 352
presentati()
Fondamenti di Informatica