Programmazione A.A. 2002-03. Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)



Documenti analoghi
Programmi e Oggetti Software

Modellazione dei dati in UML

Object Oriented Software Design

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

CORSO I.F.T.S. "TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE. Matricola 2014LA0033 DISPENSE DIDATTICHE MODULO DI PROGETTAZIONE SOFTWARE

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Programmazione. Prima lezione sugli oggetti: agenda

Registratori di Cassa

Esercitazione di Basi di Dati

Informatica per la comunicazione" - lezione 7 -

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

BASI DI DATI - : I modelli di database

Elementi di UML (7): Diagrammi dei componenti e di deployment

Prova di Laboratorio di Programmazione

Telematica II 17. Esercitazione/Laboratorio 6

Soluzione dell esercizio del 12 Febbraio 2004

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Esercitazione n 4. Obiettivi

Soluzione dell esercizio del 2 Febbraio 2004

Ingegneria Meccanica

TECNICHE DI SIMULAZIONE

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Object Oriented Programming

Guida all uso di Java Diagrammi ER

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

UML Diagrammi delle classi. UML Diagramma classi 1

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Programmazione in Java Parte I: Fondamenti

Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria

UML Unified Modeling Language

REGOLE PER L ESAME (agg.te settembre 2015)

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Corrispondenze e funzioni

Introduzione all Information Retrieval

Informatica per le discipline umanistiche 2 lezione 10

RAPPRESENTAZIONI GRAFICHE

Come valutare le caratteristiche aerobiche di ogni singolo atleta sul campo

Introduzione al MATLAB c Parte 2

Progettaz. e sviluppo Data Base

Programmazione Orientata agli Oggetti in Linguaggio Java

Concetto di Funzione e Procedura METODI in Java

Assistenza Clienti Gestione dei ticket in ambiente multi utenza. Software di CRM vtiger

LEZIONI CON I PAD Docente scuola secondaria IC Moglia Carla Casareggio Classi seconde 2014/2015 Proprietà triangoli e quadrilateri con Sketchometry

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Oggetti Lezione 3. aspetti generali e definizione di classi I

Funzioni in C. Violetta Lonati

Identificare le classi in un sistema

Office 2007 Lezione 08

Facoltà di Farmacia - Corso di Informatica

MANUALE PARCELLA FACILE PLUS INDICE

Università di Bologna Facoltà di Lettere e Filosofia Corso di Laurea DAMS, Indirizzo Cinema

Stampa unione - prof. Enzo Mardegan - 2

Flow!Works Manuale d uso

Cosa è un foglio elettronico

Geogebra matematica dinamica per tutti. Tiziana Segalini liceo Ariosto-Spallanzani Reggio Emilia a.s

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A Facoltà di Ingegneria Sede di Latina

CONVESSITÀ NELLA GEOMETRIA DEL TAXI DI MINKOWSKI

FUNZIONE. Si scrive: A B f: A B x y=f(x) (si legge: f funzione da A in B) x f y= f(x)

CORSO DI FONDAMENTI DI DISEGNO TECNICO LEZIONE 2 PROIEZIONI ORTOGONALI

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

Esercitazione di Basi di Dati

Sistema per scambi/cessioni di Gas al Punto di Scambio Virtuale

Programmazione a Oggetti Modulo B

Classi Oggetti public private this static static

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Anno 1. Definizione di Logica e operazioni logiche

Realizzazione di una classe con un associazione

Ata_NiAg02. Modulo Gestione Agenti

Stima della size- Esercitazioni

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

Qualche parola da imparare

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

Progettazione : Design Pattern Creazionali

Eclipse - Nozioni Base

I database. Cosa sono e a cosa servono i Database

DATABASE. nozioni di base

Matematica e giochi di gruppo

Le Basi di Dati. Le Basi di Dati

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Leggere un messaggio. Copyright 2009 Apogeo

DATABASE.

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Il calendario di Windows Vista

Java: Compilatore e Interprete

Corso di Informatica

COME CREARE UN SONDAGGIO CON SCELTA SU MOODLE

Parola chiave extends

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

PROCEDURA PER LA GESTIONE ESAMI DI STATO AREA ALUNNI AXIOS

Transcript:

Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail : {gallo, cincotti}@dmi.unict.it Facciamo gli oggetti Prima del codice, chiedersi Cosa rappresenta l oggetto che voglio costruire? Quali funzioni svolge l oggetto? Sono abbastanza semplici o dovrei spezzare l oggetto in due oggetti diversi? L oggetto richiede dati o è solo una collezione di metodi utili ad altre classi? Quali dati sono necessari per la sua descrizione? Quali dati possono essere derivati dai dati necessari? Quali dati debbono essere assegnati con parametro alla costruzione e quali possono avere valori di default? Quali dati e informazioni dell oggetto sono utili all esterno dell oggetto e quali servono solo al programmatore per la sua particolare implementazione e vanno dichiarati privati? G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 2

Facciamo gli oggetti Cosa è necessario nel codice Un nome descrittivo dell oggetto; Quali le variabili di classe (static) e quelle di istanza? Costruttori (default di Java?, uno solo? Più d uno?) Metodi propri dell oggetto (per calcoli, elaborazioni, ecc.) Metodi di accesso per le variabili che si vogliono pubblicare. Metodo tostring(), se utile (dettagli in seguito) G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 3 Struttura di un oggetto (repetita juvant) Campi dati di CLASSE (static) Campi dati di ISTANZA (dinamici) sono tipicamente non pubblici CLASSE può essere dichiarata public Metodi di accesso e modifica dei dati sono tipicamente pubblici, possono essere dinamici o statici, non sempre necessari Altri Metodi di elaborazione possono essere: dinamici o statici pubblici o privati Metodi costruttori sono pubblici, necessari se ci sono campi di istanza G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 4

Come diventare OOProgrammer: consigli per lo studio e la professione In uno sport è l allenamento che fa il campione; Nella musica è l esercizio che fa il virtuoso; Nella cucina è la pratica quotidiana che fa lo chef; Nel La programmazione è una arte/scienza di natura PRATICA. PER PROGRAMMARE BENE BISOGNA PROGRAMMARE MOLTO (non basta aver capito!) G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 5 Esercizi Disegnare una classe per gli intervalli aperti della retta reale; (vedi cartella intervalli in L27) Disegnare una classe per i rettangoli del piano; Disegnare una classe per gli studenti di Informatica del primo anno (anagrafe, esami e voti); Disegnare una classe per i dipendenti di una ditta (anagrafe, qualifica, stipendio, ferie); Disegnare una classe per le squadre del campionato; La tombola! (vedi cartella tombola in L27) G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 6

Esercizi più complessi e divertenti Studiare una famiglia di oggetti: il caso degli intervalli (vedi cartella intervalli in L27): Studiare famiglie di oggetti che modellino: I rettangoli del piano; Gli studenti del primo anno di Informatica (matricola, esami, voti); I punti dello spazio terne (x,y,z) e le loro reciproche distanze; I poligoni del piano (assegnati con i loro vertici); eccetera (fantasia!) G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 7 Vedi anche La tombola (ad oggetti!) (cartella tombola in L27) I progetti proposti nel file progetti_proposti di L27. (dagli anni precedenti) G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 8

Un vero programma JAVA è Un ambiente ove diversi oggetti vengono: creati, e distrutti, mantengono informazioni e dati, si scambiano messaggi e informazioni, elaborano informazioni. Uno degli oggetti (quello chiamato per primo dalla JVM) è il regista delle operazioni. Attori sempre presente ma poco visibili? Gli oggetti della famiglia System! graficamente G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 9 Programmazione strutturata Programmazione ad oggetti Tutte le funzioni "condividono" i dati. funzione 1 funzione 2 oggetto 1 metodo privato metodi pubblici funzione 3 DATI o CAMPI funzione 5 funzione 4 oggetto 2 oggetto 3 dati o campi G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 10

Relazioni tra oggetti (già osservate) Contenimento. Un oggetto A contiene un oggetto B se tra le variabili di A è stato dichiarata e viene costruita una istanza dell oggetto B. Esempio: la classe gioco contiene una istanza di giocatore e due di dado. Utilizzo. Un oggetto A utilizza i metodi pubblici di un altro oggetto B che non ha dichiarato o costruito. Esempio: abbiamo utilizzato spesso la classe Math, la classe System. G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 11 Relazioni tra oggetti: nuova! Eredità. Una classe A eredita la classe B se assume tutte i suoi dati e metodi e li estende o modifica ulteriormente. La pratica della eredità è di fondamentale importanza e dà all OOProgramming una grande potenza Sarà oggetto delle prossime lezioni. G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 12

Linguaggi grafici per il progetto dei programmi OO Esistono numerose convenzioni la più diffusa è quella proposta dall Unified Modeling System (UML): A A usao dipende contiene o aggrega B B Per ragioni di tempo non ce ne occuperemo, di più ad Ingegneria del Software A estende o eredita B G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 13 Fine G.Gallo, G.Cincotti Programmazione I (A.A. 2002-03) Lavorare con gli oggetti, pag. 14