Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 1 06/06/2006UNIROMA2-ING OOP Programmazione.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Funzioni Friend Come abbiamo visto non possiamo accedere a membri privati di una classe dall'esterno della classe. Ma a volte abbiamo bisogno di farlo.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Le basi della programmazione a oggetti.
Unified Modeling Language
Oggetti Java.
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
1 Semantica Operazionale di un frammento di Java: lo stato.
29 febbraio 2008 Progettare tipi di dato astratti.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
SISSIS MODULO DI JAVA PER LA CLASSE IV DELL’ITI
Fondamenti di Informatica
2 luglio 2006URM2 – ING- OOP0304 OL G. Cantone e A. Lomartire 1 Programmazione Orientata agli Oggetti Processi, task e thread Java (ed esempi) Università
Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 1 06/06/2006UNIROMA2-ING OOP Programmazione.
1 14/05/2006UNIROMA2-ING OOP G. Cantone e A. Lomartire Programmazione Orientata agli Oggetti OOP L03 - E Università degli Studi di Roma Tor Vergata Facoltà
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.
Specifiche senza JML: uso delle asserzioni. 2 Asserzioni in Java Dal jdk 1.4 (da Febbraio 2002) cè meccanismo per gestire asserzioni Asserzione: espressione.
1 Lezione XIII Lu 17-Nov-2005 Programmare le classi.
Derivazione tra classi
Overriding.
Soluzione Esercizio - Classe Vettore
Ingegneria del software I
Approfondimento delle classi
Dichiarazione di classi Programmazione Corso di laurea in Informatica.
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Lezione IX Laboratorio di Programmazione. Le Classi Una classe C++ è definita come segue: class Nomeclasse { private: // metodi e attrib. visibili solo.
Java base IV: Java e la programmazione O.O.
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
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: ________________________________________________________________________________.
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Programmazione concorrente
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Problema dei Contratti Telefonici
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
I metodi F. Bombi Campi e metodi Abbiamo visto che una classe può contenere – Campi – Metodi stato I campi sono utilizzati per memorizzare.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 9 Tipi parametrici Collezioni generiche. Strutture matematiche parametriche.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Approfondimenti sulle Classi.
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Polimorfismo.
Lezione n° 07 - Esercitazione
Programmazione a oggetti
Definizione di classi Capitolo 18 febbraio 2004 Definizione di classi.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Fondamenti di Informatica II Ingegneria Informatica Prof. M.T. PAZIENZA a.a – 3° ciclo.
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.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Gestione dei thread in Java
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Primo Compitino Primo esercizio Identificare gli errori segnalati dal compilatore Verifica statica del codice Regole di binding per i nomi (quelle.
Programmazione in Java. Classi I programmi in Java consistono di classi. Le classi consentono di definire: collezioni di procedure (metodi statici) tipi.
Metodologie di Programmazione Esercizi sulla semantica di Java.
Esercizio 2. Si mostri l’evoluzione dello stato (ambiente di classi, heap, pila) durante la valutazione delle seguenti dichiarazioni di classe nei punti.
Cose nuove di Java (prima a chiacchiera, poi formalmente)
Progettare una classe 21 Febbraio La classe BankAccount Vogliamo realizzare una classe i cui oggetti sono dei semplici conti bancari. * Identifichiamo.
1 Java secondo contatto Nel tunnel una luce…. 2 Esercizio - Contatore Definire la classe Contatore con le seguenti caratteristiche:  Il metodo getValore.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Algoritmi e Strutture Dati con Laboratorio Richiami di Java – parte II.
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Introduzione alle Classi e agli Oggetti in Java 1.
Esercizio 2.
Transcript della presentazione:

Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 1 06/06/2006UNIROMA2-ING OOP Programmazione orientata agli Oggetti OOP L 4..6E Università degli Studi di Roma “Tor Vergata” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica

Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 2 06/06/2006UNIROMA2-ING OOP static

Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 3 06/06/2006UNIROMA2-ING OOPthis this restituisce l’oggetto corrente (quello che sta elaborando un messaggio testé ricevuto, il cui metodo impiega, appunto, this ). this(<lista di parametri) invoca il costruttore con proprio quei parametri (numero, tipo e ordine) della classe corrente. this(…) deve essere la prima operazione presente in un costruttore (e, duque, può apparirvi una sola volta!)

Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 4 06/06/2006UNIROMA2-ING OOP Esempio /* Obiettivo: mostrare impiego di this */ public class Complex{ private float pReale, pImmagin; Complex() {pReale=0.0; pImmagin=0.0;} Complex(float pReale, float pImmagin){ this.pReale=pReale; } float getParteReale() {return pReale;} float getParteImmagin() {return pImmagin;} void setParteReale(float x) {pReale=x;} void setParteImmagin(float x) {pImmagin=x;} float modulo (Complex c) {return sqrt(pReale*pReale + pImmagin*pImmagin);} Complex +(Complex c) { float r= pReale + c. getParteReale(); /* Nota implementazione regole di accesso a livello di oggetto piuttosto che di classe: i “fratelli” – istanze diverse della stessa classe – non sono perciò stersso “friend”: l’uno non ha libero accesso agli attributi privati dell’altro!*/ float i= pImmagin + c. getParteImmagin(); return Complex(r,i); } // Continuare }

Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 5 06/06/2006UNIROMA2-ING OOP Esempio /* Obiettivo: mostrare impiego di this */ public class Complex{ private float pReale, pImmagin; Complex() {pReale=0.0; pImmagin=0.0;} Complex(float pReale, float pImmagin){ this.pReale=pReale; } float getParteReale() {return pReale;} float getParteImmagin() {return pImmagin;} void setParteReale(float x) {pReale=x;} void setParteImmagin(float x) {pImmagin=x;} float modulo (Complex c) {return sqrt(pReale*pReale + pImmagin*pImmagin);} Complex +(Complex c) { float r= pReale + c.pReale; /* Nota implementazione regole di accesso a livello di classe: i “fratelli” – istanze della stessa classe -- sono “friend” per definizione!! */ float i= pImmagin + c.pImmagin; return Complex(r,i); } // Continuare }

Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 6 06/06/2006UNIROMA2-ING OOP Esempio this(…) /* Obiettivo: mostrare impiego di this( ) */ //Esempio basato su Thinking.. Java Apogeo public class Fiore{ private int petali=0; private float altezza=20.0; protected String s= new String(“null”); Fiore(int petali) {this.petali=petali;} Fiore(String colore){s=colore;} Fiore (String s, int petali) { this(petali); // this(s); ERRORE: solo in 1a linea. Una sola volta!! this.s=s; } Fiore (String s, int petali, float altezza) { this(s, petali); this.altezza=altezza; } Fiore(){this(“Bianco”, 29, 15.0);} public getColor(){return s;} // Altre operazioni di fiore }

Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 7 06/06/2006UNIROMA2-ING OOP Domande: giusto o sbagliato? /* Obiettivo: mostrare impiego di this( ) */ public class UnaClasse{ private Fiore f1= newFiore(); public Fiore f2; //… f2= new Fiore f1.colore; 29; f1.altezza; System.out.println ( “f1: numero di petali “ + f1.petali); // Altro }

Appunti a cura di Giovanni Cantone, con la collaborazione di Anna Lomartire e la partecipazione di Giuseppe Calavaro 8 06/06/2006UNIROMA2-ING OOP Domande: giusto o sbagliato? /* Obiettivo: mostrare impiego di this( ) */ public class Rosa extends Fiore{ private int spine= 10; private String s; Rosa() { super(“Rosso”, 16, 20.0); } rosa (int altezza, int spine) { Rosa(); this.spine=spine; (super).altezza = altezza; } String getColor(){ return (super.getColor() + “-intenso”); // Altro }