Il metodo clone. clone e Object. Restrizione su clone. Definizione di clone. Il metodo clone serve per copiare gli oggetti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il metodo clone. clone e Object. Restrizione su clone. Definizione di clone. Il metodo clone serve per copiare gli oggetti"

Transcript

1 Il metodo clone Il metodo clone serve per copare gl oggett S può nvocare su quas tutt gl oggett delle class predente publc statc vod man(strng args[]) { p, q; p=new (2,3); q=() p.clone(); Perchè l cast? Po vedamo clone e Object È un metodo d Object È dento protected Qund: s può usare solo: nello stesso package d Object (che è java.lang) nelle class dervate Restrzone su clone Il clone d Object non s può usare nelle nostre class: class CloneObject { publc statc vod man(strng args[]) { Object o=new Object(); Object s; s=o.clone(); Vene dato questo errore n complazone: clone() has protected access Denzone d clone Nella classe Object, è dento n questo modo: protected Object clone() Qund: 1

2 1. rtorna un Object 2. è protected Come clonare oggett predent Non tutt gl oggett sono clonabl: Strng a, b; a=new Strng("abcd"); b=(strng) a.clone(); // errore Per gl oggett clonabl: l metodo rtorna un Object, qund va atto l cast: p, q; p=new (2,3); q=() p.clone(); Denre l metodo clone Prendamo la classe Studente e denamo clone class Studente { Strng nome; nt anno; Clonazone: prmo tentatvo Faccamo overloadng class Studente { Strng nome; nt anno; // errore logco Studente clone() { Non va bene: clone deve are overloadng del metodo d Object Clonazone: secondo tentatvo Come per equals, l metodo deve avere esattamente la stessa ntestazone del metodo d Object: 2

3 class Studente { Strng nome; nt anno; Object clone() { Non unzona nemmeno cosí: clone() n Studente cannot overrde clone() n java.lang.object; attemptng to assgn weaker access prvleges; was protected A parole: s possono allargare drtt, ma non restrngere Va dcharato protected oppure publc Clonazone: terzo tentatvo Lo dcharamo publc (s poteva anche dcharare protected, se servva): class Studente { Strng nome; nt anno; publc Object clone() { Ora unzona: scrvamo l corpo Clonazone: terzo tentatvo Il codce completo è: class Studente { Strng nome; nt anno; publc Object clone() { // non del tutto corretto Studente s=new Studente(); s.nome=ths.nome; s.anno=ths.anno; return s; Va bene per clonare oggett Studente 3

4 Non va tanto bene se Studente ha sottoclass clone e equals per sottoclass Supponamo che Studente abba sottoclass (Non è una cosa nsolta che una classe abba sottoclass) Scrvamo metod equals e clone come detto prma n ognuna d queste 11 class Ora, Studente vene modcato con l aggunta d una campo cod_scale Vanno modcate tutte e 11 le class Non solo: altr programmator potrebbero aver realzzato altre sottoclass senza che o me ne accorga; n queste sottoclass, equals e clone non unzonano Eredtaretà Sa per equals che per clone In una classe dervata, è opportuno denre equals e clone n termn della loro denzone nella sovraclasse: class Borssta extends Studente { nt stpendo; publc Strng tostrng() { return "["+ths.nome+","+ths.anno+","+ths.stpendo+"]"; publc boolean equals(object o) { Borssta b; (!super.equals(o)) b=(borssta) o; (ths.stpendo!=b.stpendo) return true; super.equals a la parte de controll relatv alle component eredtate In questo modo, se s modca Studente, non vanno modcate le sottoclass 4

5 Clonazone n class dervate Facco la stessa cosa: class Borssta extends Studente { nt stpendo; publc Object clone() { Borssta b=(borssta) super.clone(); b.stpendo=ths.stpendo; return b; Qu abbamo un problema Eredtare clone publc statc vod man(strng args[]) { Borssta s=new Borssta(); Borssta q; q=(borssta) s.clone(); In esecuzone vene dato questo errore: Excepton n thread "man" java.lang.classcastexcepton at Borssta.clone(Borssta.java:23) at ProvaBorssta.man(ProvaBorssta.java:6) La radce del problema Facendo super.clone() nella classe Borssta, vene nvocato l metodo clone d Studente In Studente, l metodo clone è dento come un metodo che crea un oggetto Studente Il cast a Borsta allsce Eredtare clone da Object Il metodo standard d clonazone è questo: ogn oggetto nvoca l clone della sovraclasse Il clone d Object a la creazone del nuovo oggetto e c copa le component del veccho Il clone d Object crea un oggetto della stessa classe d quello d partenza, non (necessaramente) un oggetto Object

6 Invocare clone d Object La versone complessva è complcata Il concetto d base (che non unzona) è che ogn clone nvoca l clone della sovraclasse class Studente { // ancora non unzona publc Object clone() { return super.clone(); Lo stesso vale per class dervate: class Borssta extends Studente { // ancora non unzona publc Object clone() { return super.clone(); CloneNotSupportedExcepton I metod clone scrtt sopra non unzonano: Studente.java:3: unreported excepton java.lang.clonenotsupportedexcepton; must be caught or declared to be thrown return super.clone(); Questo è dovuto al modo n cu è realzzato l metodo clone d Object Metodo clone d Object Il metodo clone d Object è dento n questo modo: se l oggetto appartene a una classe che non mplementa l nteracca Cloneable, lanca una eccezone CloneNotSupportedExcepton altrment, a una copa esatta dell oggetto Questo ha due conseguenze: Nota: occorre are try-catch dell eccezone la classe deve mplementare l nteracca Cloneable non are try-catch produce un errore n complazone (l metodo super.clone() dchara d lancare un eccezone che però non vene catturata) non mplementare l nteracca produce un errore n esecuzone (perchè super.clone() n questo caso lanca una eccezone) 6

7 Notare che l prmo errore è sntattco: se un metodo dchara (con throw) d poter lancare una eccezone, questa va rlancata o catturata Che po l metodo lanc eettvamente l eccezone o no, n ase d complazone non è vercable Cloneable: motvazone Perchè tutte queste complcazon? Soluzon alternatve: l nteracca Cloneable contene clone mentre Object no la clone d Object a la copa e basta Problem delle due soluzon: ogn classe deve are la creazone del nuovo oggetto e la copatura (dato che una nteracca può solo contenere l ntestazone d un metodo, l metodo va po realzzato completamente nella classe) la clonazone non ha senso per tutt gl oggett Clonazone usando clone d Object class Studente mplements Cloneable { publc Object clone() { try { return super.clone(); catch(clonenotsupportedexcepton e) { return null; la classe deve mplementare Cloneable dato che clone d Object ha throws CloneNotSupportedExcepton, va catturata Clonazone n class dervate Se Borssta estende Studente: class Borssta extends Studente { publc Object clone() { return super.clone(); 7

8 Comment: non serve mplements Cloneable dato che Studente mplementa l nteracca Cloneable, anche Borssta la mplementa automatcamente n modo ndretto non serve catturare l eccezone vene gà atto nel clone d Studente Ch clona l oggetto? Quando s nvoca clone d Borssta: 1. vene nvocato clone d Studente 2. che nvoca clone d Object È sempre clone d Object che a la copa! Copa supercale e proonda Se un oggetto contene altr rerment a oggett: copa supercale vene copato solo l oggetto copa proonda vene copato l oggetto e tutt quell collegat Esempo Classe mport java.awt.*; class {, ; Cosa c s aspetta Conronto/clonazone supercale: 8

9 a b 2 Gl oggett sono esattamente gl stess Conronto/clonazone proonda: a b 2 2 Gl oggett non sono gl stess, ma hanno gl stess valor dentro 9

10 Uguaglanza supercale S conrontano rerment degl oggett Due oggett sono equals se loro comp sono esattamente ugual (contengono rerment agl stess dentc oggett mport java.awt.*; class {, ; // equals supercale publc boolean equals(object o) { (o==null) (ths.getclass()!=o.getclass()) s=() o; return((ths.==s.)&&(ths.==s.)); Conronto proondo Gl oggett vengono conrontat n base a loro valor, non a loro rerment: mport java.awt.*; class {, ; publc boolean equals(object o) { (o==null) (ths.getclass()!=o.getclass()) s=() o; (ths.==null) { (s.!=null) else (!ths..equals(s.)) (ths.==null) { (s.!=null) else (!ths..equals(s.))

11 return true; Copa supercale clone d Object a la copa del solo oggetto mport java.awt.*; class mplements Cloneable {, ; publc Object clone() { try { return super.clone(); catch(clonenotsupportedexcepton e) { return null; Prma della copa: a b 2 Dopo la copa supercale: 11

12 a b 2 Copa proonda Ha senso rchedere una copa anche de due oggett a b

13 Questo non vene atto da clone d Object Va atto manualmente: Copa proonda: realzzazone Occorre nvocare clone su ognuno degl oggett d cu voglo are la copa Notare che super.clone ha tpo d rtorno Object Per poter accedere alle component, devo are l cast Lo stesso vale per le component mport java.awt.*; class {, ; publc Object clone() { try { s; s=() super.clone(); s.=() ths..clone(); s.=() ths..clone(); return s; catch(clonenotsupportedexcepton e) { return null; 13

Programmazione 2 - Marco Ronchetti. Fondamenti di Java. Fac.Scienze Università di Trento. Static

Programmazione 2 - Marco Ronchetti. Fondamenti di Java. Fac.Scienze Università di Trento. Static 1 Fondamenti di Java Static 2 Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola variabile condivisa

Dettagli

CloneNotSupportedException clone() Object clone() protected native Object clone() throws CloneNotSupportedException this

CloneNotSupportedException clone() Object clone() protected native Object clone() throws CloneNotSupportedException this Clonazione Importante esempio di eccezione controllata è CloneNotSupportedException che può essere lanciata dal metodo nativo clone() della classe Object. La dichiarazione di clone() è la seguente: protected

Dettagli

Uguaglianza e copia di oggetti

Uguaglianza e copia di oggetti Uguaglianza e copia di oggetti Sommario 1. Classi Object e Class 2. Uguaglianza superficiale e uguaglianza profonda 3. Copia superficiale e copia profonda 4. Uguaglianza e copia in classi derivate 1 La

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratoro d Matematca e Informatca 1 Matteo Mondn Antono E. Porreca matteo.mondn@gmal.com porreca@dsco.unmb.t Dpartmento d Informatca, Sstemstca e Comuncazone Unverstà degl Stud d Mlano - Bcocca 10 Gennao

Dettagli

Errata corrige del libro Fondamenti di Informatica in Java

Errata corrige del libro Fondamenti di Informatica in Java corrge del lbro Fondament d Informatca n Java Emlo D Gacomo, Walter Ddmo Captolo 1 R1 R2 R3 Rn PC IR PSW Untà d controllo Pag. 23, Fgura 1.2 Bus nterno ALU MAR MDR al bus dat al bus ndrzz al bus d controllo

Dettagli

Esercitazione. Docente Ing. Mariateresa Celardo

Esercitazione. Docente Ing. Mariateresa Celardo Esercitazione Docente Ing. Mariateresa Celardo mariateresa.celardo@uniroma2.it Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore del motorino, velocità: un

Dettagli

I costruttori. Il costruttore standard. Esempio di valori di default. Alterare il costruttore standard

I costruttori. Il costruttore standard. Esempio di valori di default. Alterare il costruttore standard I costruttori Servono a inizializzare i valori dei campi degli oggetti. Vengono invocati automaticamente dopo che l oggetto è stato creato. Il costruttore standard Questo tipo di costruzione mette dei

Dettagli

Il linguaggio Java. La superclasse universale Object

Il linguaggio Java. La superclasse universale Object Il linguaggio Java La superclasse universale Object La classe Object La classe Object è la superclasse, diretta o indiretta, di ogni classe La classe Object definisce lo stato ed il comportamento base

Dettagli

Algebra 2. 6 4. Sia A un anello commutativo. Si ricorda che in un anello commutativo vale il teorema binomiale, cioè. (a + b) n = a i b n i i.

Algebra 2. 6 4. Sia A un anello commutativo. Si ricorda che in un anello commutativo vale il teorema binomiale, cioè. (a + b) n = a i b n i i. Testo Fac-smle 2 Durata prova: 2 ore 8 1. Un gruppo G s dce semplce se suo unc sottogrupp normal sono 1 e G stesso. Sa G un gruppo d ordne pq con p e q numer prm tal che p < q. (a) Il gruppo G può essere

Dettagli

Esercizio. Alcuni esercizi su algoritmi e programmazione. Schema a blocchi. Calcolo massimo, minimo e media

Esercizio. Alcuni esercizi su algoritmi e programmazione. Schema a blocchi. Calcolo massimo, minimo e media Alcun esercz su algortm e programmazone Fondament d Informatca A Ingegnera Gestonale Unverstà degl Stud d Bresca Docente: Prof. Alfonso Gerevn Scrvere l algortmo e l dagramma d flusso per l seguente problema:

Dettagli

C++ Copy Constructor

C++ Copy Constructor C++ Copy Constructor Versione 1 #include using namespace std; class Line{ public: Line( int len ); ~Line(); ; // simple constructor // destructor Member functions definitions Line::Line(int

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

Esercitazione 2. Java:

Esercitazione 2. Java: Esercitazione 2 Java: Eccezioni @andreamocci Casi Eccezionali (1) /* * Produce un numero complesso a partire dalla sua forma polare */ public static Complex frompolarform(double abs, double phase) { /*

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

Sezione: Upcast - downcast

Sezione: Upcast - downcast 1 Sezione: Upcast - downcast Upcast & downcast 2 public class Test { public static void main(string a[]) { new Test(); Test() { A a; cast B b = new B(); OK: upcast implicito a=b; NO: "method f2 not found

Dettagli

Il Linguaggio Java. La superclasse universale Object

Il Linguaggio Java. La superclasse universale Object Il Linguaggio Java La superclasse universale Object La classe Object La classe Object è la superclasse, diretta o indiretta, di ogni oggetto inclusi gli array La classe Object definisce lo stato ed il

Dettagli

Uguaglianza e Identità. (no, non avete sbagliato corso )

Uguaglianza e Identità. (no, non avete sbagliato corso ) 1 Uguaglianza e Identità (no, non avete sbagliato corso ) Fondamenti di Java Che vuol dire "uguaglianza"? Che vuol dire "Identità"? Che differenza c è? Uguaglianza public class Test { public static void

Dettagli

z class z costruttore, new z this z GRWQRWDWLRQ (C.m(), x.m()) z extends z Insieme di classi e interfacce z Namespace z Struttura gerarchica

z class z costruttore, new z this z GRWQRWDWLRQ (C.m(), x.m()) z extends z Insieme di classi e interfacce z Namespace z Struttura gerarchica 3DFNDJHMDYDGRF LQWURGX]LRQHDOOH$3, Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/~mizzaro mizzaro@dimi.uniud.it 5 maggio 2003 z class Riassunto:

Dettagli

Gestire le eccezioni. Lezione XI

Gestire le eccezioni. Lezione XI Gestire le eccezioni Lezione XI Scopo della lezione Studiare il meccanismo di gestione delle eccezioni Implementare nuove eccezioni IX-B.2 Tipi di errori Errori rilevati in fase di compilazione: errori

Dettagli

Esercizio. Alcuni esercizi su algoritmi e programmazione. Schema a blocchi. Calcolo massimo, minimo e media

Esercizio. Alcuni esercizi su algoritmi e programmazione. Schema a blocchi. Calcolo massimo, minimo e media Alcun esercz su algortm e programmazone Fondament d Informatca A Ingegnera Gestonale Unverstà degl Stud d Bresca Docente: Prof. Alfonso Gerevn Scrvere l algortmo e l dagramma d flusso per l seguente problema:

Dettagli

Scrivere programmi corretti

Scrivere programmi corretti Scrvere programm corrett L esempo della rcerca bnara o dcotomca J. Bentley, Programmng Pearls, Addson Welsey. 1 Schema processo produzone funzone teratva Algortmo n pseudo-codce Indvduazone nvarante Codfca

Dettagli

Programmazione II Compitino (Vers. B)

Programmazione II Compitino (Vers. B) Programmazione II Compitino (Vers. B) 15 gennaio 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi

Dettagli

Esercizio: Costruite una Coda analoga alla Pila

Esercizio: Costruite una Coda analoga alla Pila 1 Esercizio: Costruite una Coda analoga alla Pila 1 2 Pila e Coda IN OUT CODA IN OUT PILA 3 Trasformare la Pila in Coda int estrai() { assert(marker>0):"invalid marker"; int retval=contenuto[0]; for (int

Dettagli

Programmazione ad Oggetti. Java Parte II

Programmazione ad Oggetti. Java Parte II Programmazione ad Oggetti Java Parte II Overview Caratteristiche lessicali Il primo programma Java 1 Commenti /* Commento tradizionale, eventualmente su più linee, non nidificato */ // Commento su di una

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012

Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 20 febbraio 2012 TEMPO DISPONIBILE: 1 ora Negli

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Ereditarietà (ultima)

Ereditarietà (ultima) Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction...

Dettagli

Ereditarietà (ultima)

Ereditarietà (ultima) Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction

Dettagli

La classe Object. L2-Linguaggi di Programmazione II-unina 1

La classe Object. L2-Linguaggi di Programmazione II-unina 1 La classe Object L2-Linguaggi di Programmazione II-unina 1 JAVA è dotata di una classe speciale, una classe cosmica, denominata Object Qualsiasi altra classe deriva da Object Object Una variabile di tipo

Dettagli

Università Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1

Università Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1 Università Ca Foscari DAIS Programmazione ad Oggetti Esame del modulo 1 Nome: Matricola: Samuel Rota Bulò, a.a. 2012/2013 Programmazione ad Oggetti a.a. 2012/2013 Esame del modulo 1 Nome: Samuel Rota Bulò

Dettagli

se invoco un metodo di Object che è ridefinito in Point, viene invocato il metodo definito in Point

se invoco un metodo di Object che è ridefinito in Point, viene invocato il metodo definito in Point Gli HashSet Tipo predefinito che rappresenta insiemi di Object Cosa succede se... Posso mettere un riferimento a un Point in una variabile Object Object o=new Point(12,3); è quasi tutto come se l oggetto

Dettagli

LE FREQUENZE CUMULATE

LE FREQUENZE CUMULATE LE FREQUENZE CUMULATE Dott.ssa P. Vcard Introducamo questo argomento con l seguente Esempo: consderamo la seguente dstrbuzone d un campone d 70 sttut d credto numero flal present nel terrtoro del comune

Dettagli

Fondamenti di Informatica I

Fondamenti di Informatica I Sapienza Università di Roma, Facoltà di Ingegneria Corso di Fondamenti di Informatica I Canale 1 (A-K) Anno Accademico 2009-2010 Corso di Laurea in Ingegneria Informatica Docente: Camil Demetrescu Esercitatore:

Dettagli

Le eccezioni in Java

Le eccezioni in Java Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che

Dettagli

Metodi ad un passo espliciti con passo adattivo Metodi Runge - Kutta

Metodi ad un passo espliciti con passo adattivo Metodi Runge - Kutta Metod ad un passo esplct con passo adattvo Metod Runge - Kutta Scrvere un programma che approssm l problema d Cauchy: u (t) = f(t, u), t 0 t T, u R d, u(t 0 ) = v per un sstema d equazon dfferenzal ordnare

Dettagli

Diagramma delle classi UML. Diagramma e specifica degli use case. Specifica delel classi del diagramma

Diagramma delle classi UML. Diagramma e specifica degli use case. Specifica delel classi del diagramma Università di Roma La Sapienza, Facoltà di Ingegneria Diagramma delle classi UML Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Giuseppe De Giacomo e Monica Scannapieco, A.A. 2003-04 SOLUZIONE ESAME

Dettagli

Overloading - Overriding

Overloading - Overriding 1 Overloading - Overriding Overloading: Funzioni con uguale nome e diversa firma possono coesistere. move(int dx, int dy) move(int dx, int dy, int dz) Overriding: Ridefinizione di una funzione in una sottoclasse

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Clonazione e Serializzazione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative

Dettagli

Eccezioni predefinite

Eccezioni predefinite Eccezioni predefinite Java mette a disposizione molte eccezioni già confezionate, che descrivono la maggioranza dei problemi che possono verificarsi a run-time. Ognuna di queste è una classe. Tutte queste

Dettagli

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM ERRATA CORRIGE dei programmi della prima stampa (Aprile 2004) aggiornato al 20/05/2017 Nota: il codice corretto è ottenibile da quella errato

Dettagli

Programmazione Concorrente e Distribuita

Programmazione Concorrente e Distribuita Programmazione Concorrente e Distribuita Esame scritto del 22 Marzo 2012 Versione K Esercizio 1 (5 punti) Si consideri il codice seguente. 1 public c l a s s Redwood extends Tree { 2 public s t a t i c

Dettagli

Introduzione al calcolo numerico. Derivazione Integrazione Soluzione di equazioni

Introduzione al calcolo numerico. Derivazione Integrazione Soluzione di equazioni Introduzone al calcolo numerco Dervazone Integrazone Soluzone d equazon Dervazone numerca Il calcolo della dervata d una unzone n un punto mplca un processo al lmte ce può solo essere approssmato da un

Dettagli

Elementi di calcolo numerico

Elementi di calcolo numerico Element d calcolo numerco Molto sesso nel calcolo scentco sorge la necesstà d calcolare l valore numerco d ntegral che non ossono essere calcolat analtcamente oure occorre calcolare l valore del mnmo d

Dettagli

Concetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio

Concetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica Introduzione Ereditarietà in Sintesi È uno dei concetti chiave della programmazione orientata agli

Dettagli

Introduzione al Java Collections Framework. Progettazione del Software Anno Accademico Interfacce del Collections Framework

Introduzione al Java Collections Framework. Progettazione del Software Anno Accademico Interfacce del Collections Framework Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Progettazione del Software Anno Accademico 2003-2004 Corso di Laurea in Ingegneria Gestionale Prof. Giuseppe De Giacomo & Prof. Monica Scannapieco

Dettagli

Classi Wrapper. int Integer float Float char Char byte Byte double Double. classe "wrapper"

Classi Wrapper. int Integer float Float char Char byte Byte double Double. classe wrapper 1 Classi Wrapper classe "wrapper" int Integer float Float char Char byte Byte double Double Generano oggetti che hanno come variabile di istanza un tipo di dato primitivo con nome uguale Integer int Float

Dettagli

Progettazione del Software Anno Accademico

Progettazione del Software Anno Accademico Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Progettazione del Software Anno Accademico 2003-2004 Corso di Laurea in Ingegneria Gestionale Prof. Giuseppe De Giacomo & Prof. Monica Scannapieco

Dettagli

Dipartimento di Statistica Università di Bologna. Matematica Finanziaria aa lezione 14: 18 aprile 2012

Dipartimento di Statistica Università di Bologna. Matematica Finanziaria aa lezione 14: 18 aprile 2012 Dpartmento d Statstca Unverstà d Bologna Matematca Fnanzara aa 2011-2012 lezone 14: 18 aprle 2012 professor Danele Rtell www.unbo.t/docent/danele.rtell 1/19? Schema algebrco de fluss d cassa con v = (1

Dettagli

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Eccezioni L esistenza di

Dettagli

La classe Object. Ce li ha anche HelloWorld!!!

La classe Object. Ce li ha anche HelloWorld!!! La classe Object Ogni classe estende implicitamente la classe java.lang.object La classe java.lang.object contiene dei metodi che vengono implicitamente ereditati I metodi ereditati sono: clone equals

Dettagli

Esercitazione di lunedì - TUTTE LE MATRICOLE -

Esercitazione di lunedì - TUTTE LE MATRICOLE - 1 Esercitazione di lunedì - TUTTE LE MATRICOLE - 2 Pre-esercitazione - Prova a fare il primo esercizio guidato in modo da riprendere le fila del discorso fatto a lezione su come strutturare un progetto.

Dettagli

Java: tipi (im)mutaibili. Metodi equals e clone

Java: tipi (im)mutaibili. Metodi equals e clone Java: tipi (im)mutaibili. Metodi equals e clone Mutabilità Un tipo è mutabile (mutable) se ha dei metodi che possono modificare ilrep, altrimenti è detto immutabile (immutable). della classe! Il metodo

Dettagli

Le eccezioni in Java

Le eccezioni in Java Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che

Dettagli

Propagazione degli errori

Propagazione degli errori Propagaone degl error Voglamo rcavare le ncertee nelle msure ndrette. Abbamo gà vsto leone un prma stma degl error sulle grandee dervate valda n generale. Consderamo ora l caso specco d grandee aette da

Dettagli

Corso di Progettazione del Software

Corso di Progettazione del Software T. Mancini & M. Scannapieco S.JOO.5 Java: copia profonda February 2, 2008 p. 1/22 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione

Dettagli

Eccezioni. Programmazione in rete e laboratorio Eccezioni. Classi eccezioni

Eccezioni. Programmazione in rete e laboratorio Eccezioni. Classi eccezioni Programmazione in rete e laboratorio 2004-05 Alberto Martelli Eccezioni Eccezioni Eccezioni: meccanismo per trattare condizioni eccezionali - divisione per zero - indice di array fuori dai limiti - errori

Dettagli

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals()

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Ereditarietà (Inheritance) RIASSUMIAMO DALLA SCORSA

Dettagli

Specifica, progetto e verifica della correttezza di algoritmi iterativi. Ragionamenti su di un algoritmo. Il metodo delle asserzioni (Floyd)

Specifica, progetto e verifica della correttezza di algoritmi iterativi. Ragionamenti su di un algoritmo. Il metodo delle asserzioni (Floyd) Specfca, progetto e verfca della correttezza d algortm teratv Il metodo delle asserzon Ragonament su d un algortmo Ragonare sulla specfca d un algortmo data con pre e post-condzon serve a: (a posteror)

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Programmazione Java Struttura di una classe, Costruttore, Riferimento this Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento

Dettagli

Progettazione del Software

Progettazione del Software Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Progettazione del Software Corso di Laurea in Ingegneria Gestionale Prof. Toni Mancini & Prof. Monica Scannapieco AUTOV.Java.4 Nozioni Preliminari

Dettagli

Esercizio: Lista Circolare

Esercizio: Lista Circolare Esercizio: Lista Circolare Si realizzi in Java un gestore di una lista circolare. La dimensione minima della lista è 2 elementi (ed è anche la dimensione iniziale). La dimensione massima è 20 elementi.

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Università Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1

Università Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1 Università Ca Foscari DAIS Programmazione ad Oggetti Esame del modulo 1 Nome: Matricola: Samuel Rota Bulò, a.a. 2012/2013 Programmazione ad Oggetti a.a. 2012/2013 Esame del modulo 1 Nome: Samuel Rota Bulò

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Programmazione in Java (3) Le eccezioni Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di R o m a Anno

Dettagli

Diagramma delle classi UML

Diagramma delle classi UML Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Prof. Giuseppe De Giacomo, A.A. 2002-03 SOLUZIONE ESAME DEL 11/07/2003 Roma, 11 luglio 2003 1

Dettagli

Linguaggio C. funzioni e procedure. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. funzioni e procedure. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Lnguaggo C funzon e procedure Unverstà degl Stud d Bresca Docente: Massmlano Gacomn Un esempo Acqusre dall utente un numero ntero n, rpetendo l acquszone se è prmo. Successvamente, stampare 5 numer prm

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Archtettura degl Elaborator - 1 Unverstà degl Stud d Padova Facoltà d Scenze MM.FF.NN. Corso d Laurea Trennale n Informatca docente: Alessandro Sperdut Informazon General Lucd ed esercz dsponbl n formato

Dettagli

E' un meccanismo per estendere classi esistenti, aggiungendo altri metodi e campi.

E' un meccanismo per estendere classi esistenti, aggiungendo altri metodi e campi. Ereditarietà Ereditarietà E' un meccanismo per estendere classi esistenti, aggiungendo altri metodi e campi. class SavingsAccount extends BankAccount nuovi metodi nuove vbl istanza Tutti i metodi e le

Dettagli

Soluzioni 3.1. n(n 1) (n k + 1) z n k! k + 1 n k. lim k

Soluzioni 3.1. n(n 1) (n k + 1) z n k! k + 1 n k. lim k (1) La sere bnomale è B n (z) = k=0 Con l metodo del rapporto s ottene R = lm k Soluzon 3.1 n(n 1) (n k + 1) z n k! c k c k+1 = lm k k + 1 n k lm k c k z k. k=0 1 + 1 k 1 n k = 1 (2) La multfunzone f(z)

Dettagli

Le eccezioni in Java

Le eccezioni in Java Le eccezioni in Java G. Grossi 17 gennaio 2007 Indice 1 Le eccezioni Gerarchia eccezioni Le eccezioni Object Throwable Error Exception Controllate Non controllate RunTimeException Indice Le eccezioni 1

Dettagli

Parte I Java. Metodologie di Programmaziona Secondo Appello, 14/2/2006 1

Parte I Java. Metodologie di Programmaziona Secondo Appello, 14/2/2006 1 Metodologie di Programmaziona 05 06 Secondo Appello, 14/2/2006 1 Parte I Java Considerate le seguenti definizioni di classe. class T { class S extends T { class A { public void print(string s) { System.out.println(s);

Dettagli

Diagramma delle classi UML

Diagramma delle classi UML Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Giuseppe De Giacomo e Monica Scannapieco, A.A. 2003-04 SOLUZIONE ESAME DEL 11/07/2003 Roma, 9

Dettagli

Allora v = v2 =

Allora v = v2 = Problema: a partre da due sequenze ordnate v1 e v2 d element voglamo costrurne una ordnata v con tutt gl element d v1 e v2 Algortmo rcorsvo: Se le due sequenze contengono element confronta prm due element

Dettagli

SOLUZIONE. Requisiti. Requisiti (cont.) Fase di analisi. Università di Roma La Sapienza, Facoltà di Ingegneria

SOLUZIONE. Requisiti. Requisiti (cont.) Fase di analisi. Università di Roma La Sapienza, Facoltà di Ingegneria Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Ing. Informatica) Proff. Marco Cadoli e Maurizio Lenzerini, Canali A-L & M-Z A.A. 2003-04 Compito d esame del

Dettagli

Gestione delle eccezioni

Gestione delle eccezioni Gestione delle eccezioni Raffaella Brighi, a.a. 2007/08 Ereditarietà Corso di Algoritmi e programmazione. A.A. 2007-08 CdL Operatore Informatico Giuridico. Casi di insuccesso Vi sono numerosi problemi

Dettagli

Inizializzare oggetti

Inizializzare oggetti Inizializzare oggetti Uso della Classe Software per TLC - AA 2008/2009 1 Costruttori e polimorfismo Uso della Classe Un codice migliore Software per TLC - AA 2008/2009 2 Costruttori ed Ereditarietà Output:

Dettagli

Dipartimento di Statistica Università di Bologna. Matematica finanziaria aa lezione 9: 3 marzo 2014

Dipartimento di Statistica Università di Bologna. Matematica finanziaria aa lezione 9: 3 marzo 2014 Dpartmento d Statstca Unverstà d Bologna Matematca fnanzara aa 2013-2014 lezone 9: 3 marzo 2014 professor Danele Rtell www.unbo.t/docent/danele.rtell 1/25? Eserczo Consderamo una rendta perodca d 2n termn

Dettagli

S O L U Z I O N I. 1. Effettua uno studio qualitativo della funzione. con particolare riferimento ai seguenti aspetti:

S O L U Z I O N I. 1. Effettua uno studio qualitativo della funzione. con particolare riferimento ai seguenti aspetti: S O L U Z I O N I 1 Effettua uno studo qualtatvo della funzone con partcolare rfermento a seguent aspett: f ( ) ln( ) a) trova l domno della funzone b) ndca qual sono gl ntervall n cu f() rsulta postva

Dettagli

Corso di. Gasdinamica II Tommaso Astarita

Corso di. Gasdinamica II Tommaso Astarita Corso d Gasdnamca II Tommaso Astarta astarta@unna.t www.docent.unna.t Gasdnamca II Tommaso Astarta 5.0.008 Metodo d Eulero S supponga d avere una equazone dfferenzale del prmo ordne: f ( x, ) x xo o Defnendo

Dettagli

Programmazione a Oggetti Lezione 11. Eccezioni e Packages

Programmazione a Oggetti Lezione 11. Eccezioni e Packages Programmazione a Oggetti Lezione 11 Eccezioni e Packages Sommario Eccezioni Sollevamento Cattura Trattamento Packages e visibilità Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:

Dettagli

Polimorfismo parametrico vs polimorfismo per inclusione

Polimorfismo parametrico vs polimorfismo per inclusione Polimorfismo parametrico vs polimorfismo per inclusione Esercizio Definire il tipo di dato Stack con operazioni Push( element ) Pop() Non forzare una specifica implementazione Non forzare un tipo specifico

Dettagli

Geometria 1 a.a. 2011/12 Esonero del 23/01/12 Soluzioni (Compito A) sì determinarla, altrimenti dimostrare che ciò è impossibile.

Geometria 1 a.a. 2011/12 Esonero del 23/01/12 Soluzioni (Compito A) sì determinarla, altrimenti dimostrare che ciò è impossibile. Geometra 1 a.a. 2011/12 Esonero del 23/01/12 Soluzon (Compto A) (1) S consder su C 2 l prodotto Hermtano, H assocato alla matrce ( ) 2 H =. 2 (a) Dmostrare che, H è defnto postvo e determnare una base

Dettagli

Nota: questo discorso vale solo per i metodi e le componenti che esistono in tutte e due le classi

Nota: questo discorso vale solo per i metodi e le componenti che esistono in tutte e due le classi Liste Esistono dei tipi predefiniti in Java per liste e insiemi Breve riepilogo Variabili: 1. ogni oggetto si può mettere in Object 2. per il passo inverso, serve il cast Quando la variabile è di un tipo

Dettagli

Determinazione del tipo

Determinazione del tipo 1 Determinazione del tipo Point NamedPoint public static void main(string a[]){ Point p; // leggi k if (k==1) p=new Point(2,2); else p=new NamedPoint(3,3, A ); // p.getname(); SBAGLIATO! if (p instanceof

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Programmazione Java Struttura di una classe, Costruttore, Riferimento this Programmazione Java Struttura di una classe, Costruttore, Riferimento this Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila diruscio@di.univaq.it. Sommario 2 2» Struttura

Dettagli

PROCEDURA INFORMATIZZATA PER LA COMPENSAZIONE DELLE RETI DI LIVELLAZIONE. (Metodo delle Osservazioni Indirette) - 1 -

PROCEDURA INFORMATIZZATA PER LA COMPENSAZIONE DELLE RETI DI LIVELLAZIONE. (Metodo delle Osservazioni Indirette) - 1 - PROCEDURA INFORMATIZZATA PER LA COMPENSAZIONE DELLE RETI DI LIVELLAZIONE (Metodo delle Osservazon Indrette) - - SPECIFICHE DI CALCOLO Procedura software per la compensazone d una rete d lvellazone collegata

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Gestione delle eccezioni in Java

Gestione delle eccezioni in Java Gestione delle eccezioni in Java - Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Programmazione in Java (4) Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico 2015/2016

Dettagli

Fondamenti di Informatica L-B Esercitazione n 5 Java: Interfaccia Comparable, Array

Fondamenti di Informatica L-B Esercitazione n 5 Java: Interfaccia Comparable, Array Fondamenti di Informatica L-B Esercitazione n 5 Java: Interfaccia Comparable, Array A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Interfaccia Comparable L altra volta abbiamo

Dettagli

COGNOME NOME MATRICOLA DATA

COGNOME NOME MATRICOLA DATA COGNOME NOME MATRICOLA DATA 1. Scrivere la classe Automobile che ha i seguenti attributi colore: una stringa indicante il colore dell automobile, velocità: un numero con la virgola indicante la velocità

Dettagli

Gestione delle Eccezioni

Gestione delle Eccezioni Gestione delle Eccezioni Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni 1 Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista

Dettagli

UML: Aggregazione. class A { int s; public void sets(int){ }; public int gets() { }; class B {A ob; public void usea() { }; }

UML: Aggregazione. class A { int s; public void sets(int){ }; public int gets() { }; class B {A ob; public void usea() { }; } UML: Aggregazione class A { int s; public void sets(int){ ; public int gets() { ; class B {A ob; public void usea() { ; Aggregation - Composition Use aggregation (has-a) when the lifecycle of the partecipating

Dettagli

Programmazione in Java (I modulo) Lezione 20: Ereditarietà

Programmazione in Java (I modulo) Lezione 20: Ereditarietà Programmazione in Java (I modulo) Lezione 20: Ereditarietà Ereditarietà (Inheritance) Il programmatore definisce una classe generale In seguito definisce una classe più specifica Aggiungo soltanto nuovi

Dettagli

Corso di Progettazione del Software

Corso di Progettazione del Software T. Mancini & M. Scannapieco S.JOO.3 Java: le classi Object e Class February 2, 2008 p. 1/12 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso

Dettagli

Bank account. private double balance; 11/2/2011

Bank account. private double balance; 11/2/2011 Il Linguaggio Java Ereditarietà Bank account class BankAccount { public BankAccount() { balance = 0; } public void deposit(double amount) { balance += amount; } public void withdraw(double amount) { balance

Dettagli

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 22 settembre Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 22 settembre Attenzione: Cognome.. Nome.... Archtettura degl Elaborator Classe 3 Prof.ssa Anselmo Appello del 22 settembre 2017 Attenzone: Inserre propr dat nell apposto spazo sottostante e n testa a questa pagna. Preparare un

Dettagli

Corso Linguaggi di programmazione II - Unina Esercitazione (prova intercorso)

Corso Linguaggi di programmazione II - Unina Esercitazione (prova intercorso) 1) Si considerino le classi Java: Corso Linguaggi di programmazione II - Unina Esercitazione (prova intercorso) class Card Card (String seed, int value) this.seed=seed; this.value=value; String seed; int

Dettagli