Programmazione ad oggetti

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Le basi della programmazione a oggetti.
Unified Modeling Language
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
1 Semantica Operazionale di un frammento di Java: lo stato.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
Fondamenti di Informatica
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Funzioni definite dall’utente
File.
Introduzione alla programmazione ad oggetti
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Lezione XIII Lu 17-Nov-2005 Programmare le classi.
Derivazione tra classi
Programmazione Corso di laurea in Informatica
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
Selezione (=scelta) con “if-else”
Espressioni condizionali
Java base IV: Java e la programmazione O.O.
Argomenti della lezione
Programmazione in Java
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Componenti fondamentali di un programma Java
Java Contardi Carlo A.S. 2008/09.
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Progettare un database
Unità Didattica 3 Linguaggio C
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
I nomi in Java F. Bombi 18 novembre novembre 2003.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Astrazione procedurale ed eccezioni
Lezione n° 07 - Esercitazione
Le variabili in Java Nella programmazione tradizionale, una variabile è una porzione di memoria in cui è immagazzinato un certo tipo di dato. Per esempio.
Oggetti in C# Lezione 1 Classi ed istanze Oggetti in C# - Lezione 1.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Programmazione a oggetti
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
CORSO DI PROGRAMMAZIONE II Lezione 22
OOP Object Oriented Programming Programmazione Orientata agli Oggetti
Lezione 1 Panoramica sui paradigmi di programmazione
Incapsulamento e information hiding
Programmazione ad oggetti
1 novembre I nomi in Java F. Bombi 1 novembre 2002.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 7 Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Progettare una classe 21 Febbraio La classe BankAccount Vogliamo realizzare una classe i cui oggetti sono dei semplici conti bancari. * Identifichiamo.
Esercitazione del 9 marzo 2007 Ereditarieta’. Richiami Definire sottoclassi (ereditarieta’) Overriding Specificatori di accesso (private, protected) Principio.
La Programmazione ad Oggetti
1 Java secondo contatto Nel tunnel una luce…. 2 Esercizio - Contatore Definire la classe Contatore con le seguenti caratteristiche:  Il metodo getValore.
La programmazione ad oggetti
30/10/01Array 1  Un array e’ una struttura dati che contiene piu’ valori del medesimo tipo.  La lunghezza di un array e’ stabilita quando l’array viene.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Programmazione ad oggetti Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi

Modelli orientati agli oggetti Modello ad oggetti Il mondo viene visto come un sistema di cose Comportamento visibile Un oggetto Stato interno nascosto Oggetto = stato + comportamento + identità

Passi per la modellazione OO Identificare gli oggetti Identificare il comportamento degli oggetti Identificare le relazioni tra gli oggetti Realizzare gli oggetti: raggruppare in classi le strutture dati ed i comportamenti

Lezione 2 Oggetti Per capire cos’è un oggetto prendiamo spunto dalla vita reale: un oggetto è un’automobile, un computer, una casa, e così via Un oggetto può essere definito elencando sia le sue caratteristiche sia i suoi comportamenti, cioè le funzioni che mette a disposizione Elencando le caratteristiche e i comportamenti, diamo una definizione generica Un oggetto però è un’entità particolare, con le sue caratteristiche specifiche.

Lezione 2 Oggetti 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 - Numero di porte = 5 - Marca = bmw

Lezione 2 Oggetti Un altro oggetto auto2 potrà avere le seguenti caratteristiche: - Velocità = 60 - Colore = nero - Numero di porte = 4 - Marca = fiat Quindi gli oggetti sono diversi a seconda del valore assunto dalle loro caratteristiche, ma condividono la stessa struttura

Lezione 2 Oggetti Nella terminologia OOP le caratteristiche di un oggetto vengono chiamate attributi, i comportamenti vengono chiamati metodi I metodi sono le operazioni che un oggetto è in grado di compiere Un oggetto è quindi formato da attributi e metodi

Lezione 2 Classi Possono esistere più oggetti che hanno gli stessi attributi, anche con valori diversi, e che dispongono degli stessi metodi. Si dice che questi oggetti appartengono alla stessa classe Una classe specifica gli attributi, senza indicarne il valore, e i metodi che devono avere gli oggetti che appartengono alla classe La classe quindi crea più oggetti tutti con gli stessi attributi e gli stessi metodi. Gli oggetti creati a partire da una classe vengono chiamati istanze della classe Due istanze della stessa classe sono distinguibili solo per il valore dei loro attributi, mentre il loro comportamento (metodo) è lo stesso

Classi <nome classe> <attributo1> <attributo2> Lezione 2 Classi La struttura di una classe è la seguente: <nome classe> <attributo1> <attributo2> … <metodo1> <metodo2> Diagramma delle classi

Classi Automobile Esempio: Velocità Colore Numero di porte Marca Lezione 2 Classi Esempio: Automobile Velocità Colore Numero di porte Marca Avviati Accelera Fermati Gira Cambia marcia Rifornisciti

Lezione 2 Classi Usando questa classe possiamo creare gli oggetti auto1 e auto2, e dopo averli creati possiamo interagire con essi usando l’invio di messaggi oppure modificando direttamente gli attributi. Possiamo impostare alcune caratteristiche dell’oggetto auto1: - auto1.colore = blu - auto1.numero_di _porte = 5 oppure possiamo usare i metodi dell’oggetto auto2 sfruttando i seguenti messaggi: - auto2.avviati() - auto2.accelera()

Cenni di UML UML è un linguaggio (Unified Modeling Language) Fornisce i costrutti per lo sviluppo di sistemi software: Analisi dei requisiti Analisi e progetto OO Modellazione dei componenti e della struttura Modello espresso mediante diagrammi grafici

Simboli usati per la visibilità UML . ContoCorrente -Numero correntista -Nome correntista -Saldo #Numero operazioni +deposita(valore) +preleva(valore) +calcolaInteressi() -incrementaNumeroOperazioni +leggiNumeroOperazioni() Tipo di dati astratto=classe istanza di un tipo di dati astratto = oggetto incapsulamento = data hiding = fornisce un livello di astrazione attraverso le funzoni  Non c’è struttura dati separata: operazioni e struttura dati integrate in una singola entità

CLASSI: classi ed istanze (oggetti) - 1 TIPO CLASSE attributi metodi istanza istanza, oggetto (una varabile) oggetto C variabili di istanza di C metodi oggetto A variabili istanza di A metodi istanza oggetto B variabili istanza di B metodi Una classe è un modello per creare oggetti descritti dalle stesse caratteristiche (attributi) e che mostrano comportamenti identici a partire dalle stesse situazioni (attributi) iniziali.

CLASSI: classi ed istanze (oggetti) - 2 CLASSE TCane Razza Nome oggetto oggetto unCagnone briciola san Bernardo unTrovatello bastardino boby oggetto ilMioCane tea barboncino

Esempi usando il linguaggio Java Lezione 2 Esempi usando il linguaggio Java Un’applicazione Java è costituita da una o più classi; una classe solamente contiene il metodo main(): l’esecuzione di un’applicazione java comincia eseguendo questo metodo. class saluti { public static void main (String args[]) System.out.println(“hello world”); } -public indica che il metodo è pubblico ed è visibile -static indica che il metodo è associato alla classe e non può essere richiamato dai singoli oggetti della classe. -void indica che non ci sono valori di ritorno -Tra parentesi sono indicati i parametri. Il metodo main possiede come parametro un array di stringhe (indicato con args[]) che corrisponde ai parametri passati dalla riga di comando quando viene eseguita l’applicazione Questo semplice esempio dichiara una classe chiamata saluti, contenente il metodo main che è formato da un’unica istruzione, ossia una chiamata del metodo println(). Usando la terminologia OOP diciamo che viene inviato all’oggetto System.out il messaggio println. L’oggetto System.out indica lo standard output.

Esempi usando il linguaggio Java Lezione 2 Esempi usando il linguaggio Java Esempio di dichiarazione di una classe: class <nome della classe> { //attributi //metodi }

Esempi usando il linguaggio Java Lezione 2 Esempi usando il linguaggio Java Esempio di dichiarazione di attributi: class automobile { private int velocità, numero_porte; String colore, marca; } Esempio di dichiarazione di metodi void accelera() { …} public void sposta() { …}

Un primo metodo: il costruttore della classe Inizializza le variabili Costruttore: metodo con lo stesso nome della classe non richiede tipo di ritorno puo’ avere una lista di argomenti di inizializzazione attivato automaticamente quando si crea un'oggetto con new sono possibili costruttore diversi, che devono avere liste di argomenti diversi costruttore di default: senza argomenti.

Esempi usando il linguaggio Java Lezione 2 Esempi usando il linguaggio Java Esempio di creazione ed uso di oggetti: supponiamo che esista la classe Automobile; dichiariamo le seguenti istanze di classe: - Automobile auto1 ; - Automobile auto2; per creare l’oggetto si usa l’operatore new seguito dal nome del metodo costruttore - auto1 = new Automobile(); - auto2 = new Automobile();

Le classi Classificazione: Oggetti con gli stessi attributi e con gli stessi comportamenti sono raggruppati in classi Classe astrazione che descrive delle proprietà Una classe descrive un insieme di oggetti individuali Un oggetto è una istanza della classe Ogni istanza ha valori diversi degli attributi Le istanze di una classe condividono i nomi degli attributi e le operazioni

Interazione tra oggetti Lezione 2 Interazione tra oggetti Un programma ad oggetti è formato da tanti oggetti che comunicano ed interagiscono tra loro L’interazione tra gli oggetti avviene con un meccanismo chiamato scambio di messaggi Un oggetto, inviando un messaggio ad un altro oggetto, può richiedere l’esecuzione di un metodo Un oggetto può interagire con un altro oggetto per diversi motivi: per modificarne lo stato, per richiedere un’informazione o per attivare un comportamento

Interazione tra oggetti Lezione 2 Interazione tra oggetti Un messaggio è costituito da 3 parti: un destinatario, cioè l’oggetto verso il quale il messaggio è indirizzato il metodo che si vuole attivare, che deve essere uno dei metodi messi a disposizione dall’oggetto destinatario l’insieme dei parametri che vengono passati all’oggetto quando si richiede l’attivazione del metodo

Interazione tra oggetti Lezione 2 Interazione tra oggetti Per esempio, se abbiamo una classe automobile e una classe autista, un oggetto di classe autista, per esempio autista1 per inviare all’oggetto auto1 di classe automobile il messaggio che richiede di aumentare la velocità può scrivere: auto1.accelera()