Telematica II 6. Ereditarieta /Polimorfismo in JAVA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Telematica II 6. Ereditarieta /Polimorfismo in JAVA"

Transcript

1 Files jar quando un applicazione JAVA è composta da molte classi, è possibile raggruppare i files.class in un archivio compresso di estensione.jar (JAVA archive) è possibile distribuire librerie di classi all interno di cartelle Telematica II 6. Ereditarieta /Polimorfismo in JAVA il formato.jar è equivalente al.zip l unica differenza è che in ogni archivio jar è presente un file chiamato MANIFEST.MF che contiene informazioni sul contenuto/proprietà dell archivio il file MANIFEST è un file di testo composto da coppie attributovalore, ad esempio: Manifest-version: 1.0 Created by: Eclipse IDE Corso di Laurea in Ingegneria Informatica A.A Semestre per creare un archivio si usa il comando jar (si potrebbe in teoria usare anche WinZip): jar cvmf MANIFEST.MF archivio.jar input-files oppure jar cvf libreria.jar Cartella Prof. Giovanni Pascoschi 2 Files jar Utilizzo file jar per utilizzare da una applicazione classi contenute in un file jar non posizionata nella stessa cartella si potrebbe usare: java cp.;c:\cartella\libreria.jar mypackage.classeconmain in alternativa si puo posizionare la libreria.jar nella cartella jre\lib\ext del JDK per rendere eseguibile un file.jar è sufficiente inserire nel file MANIFEST una riga che contiene la classe con il metodo main() che sarà eseguito automaticamente dalla JVM : Manifest-version: 1.0 Created by: Eclipse IDE Main-class: ServerMain 3 4

2 Ereditarietà Classi derivate L ereditarietà nasce dal bisogno di creare classi piu specifiche a partire da altre piu generali si dice che la nuova classe generata (chiamata derivata) eredita attributi e metodi dalla classe base esempio : classe base = persona classe derivata = dipendente sintassi: class derivata extends base public class Persona { private String nome; private String cognome; private int annodinascita; public void registra (String, String); public class Dipendente extends Persona { private int matricola; private String professione; private void assegna (int, String); La classe Persona è detta superclasse (o classe base) La classe DIpendente, che eredita i membri della superclasse, è detta sottoclasse (o classe derivata). 5 6 Classi derivate Classi derivate : gerarchia delle classi Persona Figura_geom nome cognome anno_nascita Registra Le classi sono rappresentate con un rettangolo e la derivazione è rappresentata con una freccia dalla sottoclasse alla superclasse. Poligono matricola professione Dipendente la freccia si legge is a (e un) Quadrato Pentagono Esagono Assegna 7 8

3 Classe Object Classe derivate : costruttori la libreria standard JAVA soddisfa la teoria degli oggetti esiste una classe Object che astrae il concetto di oggetto generico Object appartiene al package java.lang Object è la superclasse di ogni classe se definiamo una classe che non estende nessun altra classe, essa estende automaticamente Object public class persona {... equivale a public class persona extends Object {... public class Persona { private String nome; Quando si invoca il costruttore della sottoclasse viene private String cognome; eseguita prima la lista di inizializzazione, e dopo il private int annodinascita; costruttore della sottoclasse. Persona(String n, String c, int a) { nome = n; cognome = c; annodinascita = a; public class Dipendente extends Persona { private int matricola; private String professione; Dipendente(String n, String c, int a, int m, String p) { super(n, c, a); // a causa degli attributi privati della superclasse matricola = m; professione = p; 9 10 Classe derivate : costruttori public class Persona { private String nome; private String cognome; private int annodinascita; Persona( ) { // costruttore di default nome = ""; cognome = ""; annodinascita = 0; Persona(string n, String c, int a) { nome = n; cognome = c; annodinascita = a; ; public class Dipendente extends Persona { private int matricola; private String professione; Dipendente(String n, String c, inta, intm, Stringp){ matricola = m; professione = p; ; Il costruttore della sottoclasse non invoca il costruttore della superclasse l esecuzione del costruttore della classe derivata richiama il costruttore di default e quindi si richiama il costruttore della sottoclasse Classe derivate : protected public class Persona { protected String nome; protected String cognome; protected int anno_nascita; public void registra (String, String); ; public class Dipendente extends Persona { private int matricola; private String professione; public void assegna (int, String); ; Per rendere i campi privati accessibili anche alle sottoclassi a livello di package è necessario fare uso del qualificatore d accesso protected nella classe base I campi protected sono accessibili dalle classi derivate, ma inaccessibili dall esterno

4 Eredità multipla in C++ Polimorfismo Figura_geom Il polimorfismo è la proprietà in base alla quale oggetti differenti possono rispondere in maniera diversa ad uno stesso messaggio Parallelepipedo Poligono il polimorfismo è utile se associato al concetto di ereditarietà : una classe derivata puo ereditare un metodo da una classe base, ma puo cambiarne il meccanismo di interfaccia Quadrato Pentagono Esagono La classe derivata Quadrato deriva da due classi : Parallelepipedo e Poligono l eredità multipla esiste in C++ ma non in JAVA a causa alcune volte di problemi implementativi (non si puo usare extends con piu classi) Polimorfismo : overloading & overriding Polimorfismo : overloading - esempio overloading (sovraccarico) dei metodi quando il nome del metodo nella classe derivata è uguale e il numero o il tipo dei parametri (firma) passati al metodo cambia overriding (sovrapposizione) dei metodi quando il nome del metodo nella classe derivata è uguale e la firma non cambia public class Persona { protected String nome; protected String cognome; protected int annodinascita; public void registra (String, String, int); public class Dipendente extends Persona { private int matricola; private String professione; public void registra (String, String, int, int, String); 15 16

5 Polimorfismo : overriding - esempio Polimorfismo : overriding - esempio public class Persona { protected String nome; protected String cognome; protected int annodinascita; public void registra (String, String, int); ; public class Dipendente extends Persona { private int matricola; private String professione; public void registra (String, String, int); public void registra1 (int, String) ; si supponga di avere le seguenti classi Cerchio, Triangolo, Rettangolo tutte derivate dalla classe Figura sia dato un array figure[ ] di oggetti delle suddette classi ciascuna di esse ha un metodo draw( ) (overriding), ciascuna con la propria implementazione si supponga di voler disegnare tutte le figure contenute nel suddetto array Figura[ ] figure = new Figura[3]; figure[0] = new Cerchio( ); figure[1] = new Triangolo( ); figure[2] = new Rettangolo( ); for(int i=0; i<figure.lentgh; i++) figure[i].draw( ); possiamo semplicemente richiamare il metodo draw( ) della superclasse Figura, lasciando al programma, a run-time, il compito di stabilire quale metodo draw( ) richiamare in base al tipo dell oggetto Ereditarietà e Polimorfismo : vantaggi Metodi astratti / Classi astratte riutilizzo di classi già implementate aggiungendo / modificando solo gli attributi / metodi che necessitano per risolvere il problema riduzione del codice sorgente ridondante grazie al riutilizzo di classi già preesistenti alle quali si apportano le necessarie modifiche un metodo astratto non implementa un proprio blocco di codice è come se fosse un segnaposto public abstract void prepara( ); specializzazione di classi derivate si aumenta l efficienza delle sottoclassi mantenendo un alto grado di flessibilità nella gestione in maniera omogenea di oggetti appartenenti alla superclasse o alle classi derivate (modificando opportunamente i metodi) una classe è detta astratta quando contiene almeno un metodo astratto, e non puo essere istanziata. Cio puo capitare quando una superclasse non è in grado di specificare un particolare metodo, appunto perchè è una classe troppo generale (indefinita) 19 gestione delle gerarchi delle classi è possibile gestire insiemi di classi altamente strutturate che si possono estendere tramite semplici relazioni di ereditarietà il polimorfismo permette di gestire insieme di oggetti simili ma rappresentati da strutture di dati diverse (p.e. poligoni rettangoli quadrati cerchi, ecc) 20 public abstract class Esempio { public abstract void prepara( ); // non ha la coppia di parentesi graffe... ; una classe astratta deve necessariamente essere estesa con un overriding del metodo astratto

6 Modificatore final Interfacce 21 la parola chiave final puo essere utilizzata in tre modi diversi: 1. per creare una costante 2. per impedire la ridefinizione di un metodo 3. per impedire l ereditarietà public class Esempio { final void metodo( ); // per impedire la ridefinizione di un metodo... ; public final class Esempio { void metodo( ); // per impedire l ereditarietà di una classe... ; l interfaccia è un evoluzione della classe astratta. Un interfaccia permette di stabilire la forma di una classe : nome dei metodi, lista dei parametri e valori di ritorno, ma il corpo dei metodi deve essere vuoto un interfaccia serve per stabilire un protocollo di comunicazione(modello) tra classi per creare un interfaccia basta usare la keyword interface al posto di class (tutti gli attributi devono essere public static e final / i metodi devono essere public e abstract) public interface Esempio { public static final UNO = 1; public abstract void stampa( );... ; public class Prog implements Esempio { public void stampa( ) { System.out.println( Ciao ); // per estendere un interfaccia si usa implements ; 22 Interfacce Interfacce c/o Classi astratte in JAVA l ereditarietà multipla si riesce ad ottenere tramite le interfacce public class Myappl extends Applet implements MouseListener, Runnable {... ; Un Applet JAVA per definizione estende la classe Applet (non puo estendere altre classi) nell esempio abbiamo la possibilità di gestire il mouse (MouseListener) e contemporaneamente il multi-thread (Runnable), implementando due classi interfacce una classe astratta puo anche non contenere metodi astratti, o uno astratto e gli altri concreti un interfaccia contiene per forza tutti metodi astratti si puo estendere solo una classe astratta alla volta (no ereditarietà multipla) si possono implementare piu interfacce contemporaneamente (si ereditarietà multipla) la classe astratta è un astrazione troppo generica per poter essere istanziata l interfaccia è un astrazione comportamentale (in via globale) che non ha senso istanziare nel contesto 23 24

7 Gestione delle eccezioni Gestione delle eccezioni un eccezione indica che si è verificato un evento non convenzionale (situazione imprevista) durante l esecuzione di un proramma il sistema di gestione delle eccezioni in JAVA è basato sull assunzione che il metodo che si accorge dell errore non è in grado di gestirlo, ma lancia (throw) un eccezione ci puo essere un altra porzione di codice che cattura (caught) l eccezione e la gestisce si racchiude in un blocco try il codice che puo lanciare eccezioni ci possono essere uno o piu blocchi catch, che specificano il tipo di eccezione che possono gestire e contengono il codice per gestirla ci puo essere un blocco finally che viene sempre eseguito, indipendentemente dal verificarsi dell eccezione obiettivo controllare la situazione di un applicativo anche quando si riscontrano situazioni anomale che potrebbero far uscire il programma stesso in maniera brutale Esempio di gestione delle eccezioni Esempio di gestione delle eccezioni... try { try { int c = a/b; int c = a/b; catch (ArithmeticException e) { System.out.println( Divisione per zero ) );... catch (ArithmeticException e) { System.out.println( Divisione per zero ) ); se non ci fosse il try... catch, e se b fosse uguale a 0, il programma terminerebbe in maniera brutale con il seguente messaggio: Exception in thread main java.lang.arithmeticexception: / by zero at Eccl.main(Eccl.java:6) con il try... catch, invece, il programma puo continuare l esecuzione facendo comparire il messaggio: Divisione per zero se usiamo all interno del catch l istruzione: Exception in thread main eccezione java.lang.arithmeticexception tipo di eccezione / by zero messaggio descrittivo at Eccl.main metodo in cui è avvenuta l eccezione (Eccl.java:6) file e riga in cui è stata lanciata l eccezione e.printstacktrace( ); compare lo stesso messaggio in assenza del blocco try...catch 27 28

8 Esempio di gestione delle eccezioni Esempio di gestione delle eccezioni try { int c = a/b; catch (NullPointerException e) { e.printstacktrace( ); try { int c = a/b; catch (Exception e) { e.printstacktrace( ); in questo esempio il tipo di eccezione non verrà mai catturato, perchè diverso dal tipo dichiarato nel catch NullPointerException!= ArithmeticException in questo esempio il tipo di eccezione verrà catturato, perchè Exception indica qualsiasi tipo di eccezione Esempio di gestione delle eccezioni Esempio di gestione delle eccezioni 31 try { int c = a/b; catch (ArithmeticException e) { e.printstacktrace( ); catch (Exception e) { e.printstacktrace( ); finally { System.out.println( operazione terminata ); in questo esempio ci sono piu blocchi catch e in seguito finally viene sempre eseguito sia con eccezione che senza 32 public int div (int a, int b) { int ExceptionNum = 0; try { int c = a/b; catch (ArithmeticException e) { System.out.println( Eccezione : + e.getclass ( ) ); System.out.println( Errore : + e.getmessage ( ) ); ExceptionNum ++; finally { if ExceptionNum ==0) System.out.println( Nessuna eccezione sollevata ); else System.out.println( Eccezioni sollevate : + ExceptionNum ); return c;

9 Tipi di eccezioni piu frequenti Gestione delle eccezioni NullPointerException richiamato metodo di un reference che punta a null java.lang ArrayIndexOutOfBoundsException accessso ad un indice di un array troppo alto (fuori dell allocazione) java.lang FileNotFoundException, EOFException, ecc per gli stream java.io ConnectionException per le connessioni java.net i tipi di eccezione si possono personalizzare public class DivideByZeroException extends AritmeticException { public DivideByZeroException( ) { super( Tentativo di divisione per zero ); ; per usare il nuovo tipo di eccezione si dovrà lanciarla manualmente tramite la parola chiave throw Esempio di throw Propagazione delle eccezioni public class DivideByZeroException extends AritmeticException { public DivideByZeroException( ) { super( Tentativo di divisione per zero ); // nuovo tipo di eccezione ; public double quoziente(int numertore, int denominatore) throws DivideByZeroException { if(denominatore==0) throw new DivideByZeroException( ); return (double) numeratore/denominatore; per implementare un eccezione in un proprio metodo, si usa la keyword throw, seguita da un oggetto di una classe derivata da Throwable nell esempio precedente, usare il throw tramite un semplice if sembra superfluo è importante il meccanismo di propagazione dell eccezione, che puo essere gestita ad un livello superiore (p.e. metodo della classe chiamante) quando un eccezione viene lanciata, il controllo esce dal blocco try e passa alla prima clausola catch i metodi che possono lanciare eccezioni, devono dichiararlo esplicitamente nella loro signature, usando la keyword throws, seguita dalla classe di eccezione che possono lanciare 35 36

10 Gestione delle eccezioni Introduzione agli Stream I/O JAVA la dichiarazione di throws accanto al metodo avverte il compilatore che durante l esecuzione del metodo puo avvenire un eccezione che verrà gestita in un altra parte del codice (classe DivideByZeroException) molti metodi della libreria standard JAVA sono dichiarati con throws per esempio le classi del package java.io hanno il throws IOException l I/O in JAVA è basato sul concetto di stream (flusso), che rappresenta una connessione ad una canale di comunicazione uno stream è quindi collegato ad un dispositivo fisico di I/O esistono sia stream di input che di output si possono usare anche diversi tipi di eccezione dopo la parola chiave throws, separati da virgole Introduzione agli Stream I/O JAVA JAVADOC sono FIFO : ciò che viene scritto da un OutputStream viene letto nello stesso ordine dal corrispondente InputStream sono ad accesso sequenziale: non è fornito alcun supporto per l'accesso casuale sono read-only oppure write-only: uno stream consente di leggere (InputStream) o scrivere (OutputStream) ma non entrambe le cose. Se ambedue le funzioni sono richieste, ci vogliono 2 distinti stream: questo è un caso tipico delle connessioni di rete: da una connessione (socket) si ottengono due stream, uno in scrittura e uno in lettura sono bloccanti: la lettura blocca il programma che l'ha richiesta finché i dati non sono disponibili. Analogamente, la scrittura blocca il richiedente finché non è completata JavaDoc nacque come strumento interno utilizzato dai ricercatori della Sun che stavano lavorando alla creazione del linguaggio Java e delle sue librerie la grande mole di sorgenti fece pensare alla creazione di un tool per la generazione automatica di documentazione HTML la creazione e manutenzione di un gran numero di pagine web richiese l'aiuto di un sistema automatico per la gestione dei riferimenti incrociati fra classi e gli inevitabili errori di battitura JavaDoc nacque quindi per permettere ai programmatori di inserire dei frammenti HTML nei commenti (ignorati quindi dal compilatore) con le prime versioni si potevano inserire le descrizioni di ogni classe e dei suoi metodi, nonché il significato dei parametri e delle variabili membro quasi tutti i loro metodi possono generare eccezioni 39 40

11 JAVADOC JAVADOC /** * descrizione della classe * autore versione */ public classdoctest { /** descrizione dell attributo */ public int i; /** * descrizione del metodo * nome_parametro descr valore di ritorno */ public voidf(intp1) { per produrre la documentazione in JavaDoc di un sorgente si utilizza il tool javadoc : javadoc nomefile.java che genererà in automatico un file in formato html oppure in Eclipse (ved. esercitazioni successive) Riepilogo della lezione Fine della lezione JAVA e OOP file jar Ereditarietà / Polimorfismo interfacce e classi astratte Gestione delle eccezioni Introduzione agli stream I/O JAVADOC Domande? 43 44

12 Esercizio n.6 Esercizio n.7 Nell inventario di un azienda sono presenti 50 automezzi con un determinato valore stimato. Utilizzare un array Inventario di oggetti della classe Automezzo. La classe ha come attributo privato Valore, mentre i metodi setvalore e getvalore permettono rispettivamente la scrittura e la lettura della sua variabile incapsulata. Implementare i seguenti metodi: 1. visualizzazione dell automezzo con valore maggiore 2. ordinamento dell array di oggetti in ordine crescente di valore Una scuola intende distinguere i propri diplomati tra quelli che hanno conseguito un diploma in sessantesimi e quelli che invece lo hanno conseguito in centesimi. Il programma di gestione dei diplomi, a disposizione della segreteria della scuola, deve distinguere i diplomati in sessantesimi in 2 fasce di voto (da 36 a 50 e da 51 a 60), mentre i diplomati in centesimi in tre fasce di voto (da 60 a 70, da 71 a 89 e da 90 a 100). Progettare una gerarchia di classi in cui la base è Diplomato mentre le classi derivate sono DiplomatoVecchioEsame e DiplomatoNuovoEsame (con relativi costruttori). Definire in particolare un metodo registra() che permette nella classe base di registrare con un flag lo studente nell archivio. Definire quindi lo stesso metodo registra nelle classi derivate. Supponendo di avere 200 diplomati vecchio esame e 150 diplomati nuovo esame, implementare i seguenti metodi: 1)Valore medio del voto dei diplomati vecchio esame 2)Valore medio del voto dei diplomati nuovo esame 3)Analizzando i diplomati vecchio esame e nuovo esame, calcolare il numero totale di diplomati che hanno avuto un voto superiore o pari a 8 (su base decimale) per entrambi i tipi di diplomati 45 46

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

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

Laboratorio di reti I

Laboratorio di reti I Laboratorio di reti I Stefano Brocchi brocchi@dsi.unifi.it 13 ottobre, 2009 Stefano Brocchi Laboratorio di reti I 13 ottobre, 2009 1 / 27 Introduzione Obiettivi del corso Aspetti di programmazione Java

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Input/output (in Java) Michele Tomaiuolo Eccezione Un eccezione è

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

Eccezioni in Java A. FERRARI

Eccezioni in Java A. FERRARI Eccezioni in Java A. FERRARI Eccezioni Una eccezione è un oggetto che descrive una situazione anomala o una situazione di errore Le eccezioni vengono «lanciate» (throw) in un punto del programma e possono

Dettagli

Gestione delle eccezioni in Java

Gestione delle eccezioni in Java Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel

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

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

Insegnamento di Laboratorio di algoritmi e strutture dati

Insegnamento di Laboratorio di algoritmi e strutture dati Insegnamento di Laboratorio di algoritmi e strutture dati Roberto Posenato ver. 0.6, 31/01/2008 1 / 25 Si comincia... 1 Esigenza... Definizione Tipi di eccezioni Sollevare eccezioni Gestire le eccezioni

Dettagli

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,

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

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

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

Le eccezioni in Java

Le eccezioni in Java Le eccezioni in Java Corso di laurea in 1 Eccezioni L istruzione try/catch La propagazione dell eccezioni Intercettare e gestire eccezioni 2 Eccezioni in breve Un eccezione è un oggetto che descrive una

Dettagli

Programmazione a oggetti

Programmazione a oggetti Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software

Dettagli

Eccezioni ed asserzioni

Eccezioni ed asserzioni Eccezioni ed asserzioni I concetti relativi ad eccezioni, errori ed asserzioni e le relative gestioni, permettono allo sviluppatore di scrivere del software robusto, ovvero che riesca a funzionare correttamente,

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Eccezioni Le eccezioni sono situazioni di errore che possono essere generate e gestite dal vostro programma a run-time Quando viene

Dettagli

Programmazione Java Avanzata Programmazione Object- Oriented in Java

Programmazione Java Avanzata Programmazione Object- Oriented in Java Programmazione Java Avanzata Programmazione Object- Oriented in Java Ing. Gianluca Caminiti Testi di Riferimento (Java) Cay Horstmann Concetti di informatica e fondamenti di Java Apogeo, 2007 (Versione

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

Il linguaggio Java. Le eccezioni

Il linguaggio Java. Le eccezioni Il linguaggio Java Le eccezioni Eccezioni Definizione: evento eccezionale che si verifica durante l esecuzione di un programma e che ne altera il normale flusso di esecuzione Situazioni che causano eccezioni

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

public double getraggio() restituisce la lunghezza del raggio del cerchio che esegue il metodo.

public double getraggio() restituisce la lunghezza del raggio del cerchio che esegue il metodo. Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 7 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Java Eccezioni Eccezioni in breve Un eccezione è un oggetto che descrive una situazione anomala o di errore L eccezioni vengono lanciate da una parte di un programma e possono

Dettagli

Classi astratte Interfacce

Classi astratte Interfacce Classi astratte Interfacce Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni 1 Ereditarietà Abbiamo visto come L ereditarietà permette di costruire nuove classi utilizzando

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

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

Eccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.

Eccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi. Eccezioni Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi fanizzi@di.uniba.it 2 Eccezione Evento anormale che avviene durante l'esecuzione del programma

Dettagli

Informatica Ereditarietà Java. Ereditarietà

Informatica Ereditarietà Java. Ereditarietà Ereditarietà L'ereditarietà consente allo sviluppatore di riutilizzare il codice già scritto creando sottoclassi a partire da classi già definite. La sottoclasse eredita tutti gli attributi e tutti i metodi

Dettagli

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

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Eccezioni Categorie di eccezioni checked unchecked Gestione delle eccezioni Clausola throws Costrutto try - catch - finally Comando

Dettagli

I Metodi. Fondamenti di Informatica A-K

I Metodi. Fondamenti di Informatica A-K I Metodi Fondamenti di Informatica A-K Esercitazione 3 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti, costruttori,

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce 18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

17 - Classi parzialmente definite: Classi Astratte e Interfacce

17 - Classi parzialmente definite: Classi Astratte e Interfacce 17 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

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

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale OOP: I/O da/su File e Java Exceptions Prof. Stefano Mariani Dott. Alket Cecaj Indice I/O da/su file: java.io e java.nio BufferedReader

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

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

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

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

Sommario. I Uso degli oggetti 39

Sommario. I Uso degli oggetti 39 Questo è l'indice del libro, in cui sono evidenziati i paragrafi corrispondenti agli argomenti trattati nel corso e che costituiranno il programma d'esame. Alcuni argomenti sono stati trattati nelle lezioni

Dettagli

Gestione degli Errori in Java. Emilio Di Giacomo e Walter Didimo

Gestione degli Errori in Java. Emilio Di Giacomo e Walter Didimo Gestione degli Errori in Java Emilio Di Giacomo e Walter Didimo Errori in fase di esecuzione Un programma può contenere o generare errori in fase di esecuzione, di varia natura: errori di robustezza: dovuti

Dettagli

Gli errori nei programmi si verificano Quello che è realmente importante è: cosa fare dopo che un errore si è verificato?

Gli errori nei programmi si verificano Quello che è realmente importante è: cosa fare dopo che un errore si è verificato? Il linguaggio Java Le eccezioni Shit happens! Gli errori nei programmi si verificano Quello che è realmente importante è: cosa fare dopo che un errore si è verificato? Le eccezioni 2 Eccezione Eccezione

Dettagli

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona ed ed Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario ed scrittura su in Java ed ed di testo Scrivere stringhe su di testo

Dettagli

ereditarietà e polimorfismo

ereditarietà e polimorfismo ereditarietà e polimorfismo Java ereditarietà o l ereditarietà permette di definire nuove classi partendo da classi sviluppate in precedenza o la nuova classe viene definita esprimendo solamente le differenze

Dettagli

ASD: Sistemi Distribuiti (Prof. Scarano) 24/04/2002

ASD: Sistemi Distribuiti (Prof. Scarano) 24/04/2002 Organizzazione della lezione 8. Java: Eccezioni e Thread Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Le eccezioni come

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

Esempi in Java di program.ne O-O

Esempi in Java di program.ne O-O Esempi in Java di program.ne O-O Ereditarietà Polimorfismo statico e dinamico Esercitazione laboratorio Interfaccia Comparable e Comparator 1 Gerarchia di ereditarietà Persona IS_A Docente Studente Tecnico

Dettagli

La classe java.lang.object

La classe java.lang.object La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita

Dettagli

8. Java: Eccezioni e Thread

8. Java: Eccezioni e Thread 8. Java: Eccezioni e Thread Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Le eccezioni motivazioni

Dettagli

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce Programmazione orientata agli oggetti Classi astratte e interfacce 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma solo dichiarati Questi metodi

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

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

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce Programmazione orientata agli oggetti Classi astratte e interfacce 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma solo dichiarati Questi metodi

Dettagli

NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!!

NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!! NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!! OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/

Dettagli

INFORMATICA OOP Relazioni tra classi Roberta Gerboni

INFORMATICA OOP Relazioni tra classi Roberta Gerboni 2015 - Roberta Gerboni Relazione di associazione E possibile legare varie classi presenti in un progetto con una relazione di associazione. Una associazione individua una connessione logica tra classi

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

Lezione 8 Eccezioni e Thread

Lezione 8 Eccezioni e Thread Lezione 8 Eccezioni e Thread Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Le eccezioni motivazioni come

Dettagli

"Programmazione Distribuita" - Prof. Scarano. Laurea in Informatica. A.A Università di Salerno 1. Organizzazione della lezione

Programmazione Distribuita - Prof. Scarano. Laurea in Informatica. A.A Università di Salerno 1. Organizzazione della lezione Lezione 8 Eccezioni e Thread Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Programmazione Distribuita. Vi.ttorio Organizzazione della

Dettagli

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1. OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione,

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

Programmazione orientata agli oggetti Classi astratte e interfacce

Programmazione orientata agli oggetti Classi astratte e interfacce Programmazione orientata agli oggetti Classi astratte e interfacce Fondamenti di Informatica L-B 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma

Dettagli

Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007

Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007 Cognome............................. Nome................................ Programmazione Compitino del 17 gennaio 2007 Matricola............................ NOTA: Negli esercizi 1, 2, 3, 4 fate riferimento

Dettagli

Soluzione della prova scritta del 5 febbraio 2013

Soluzione della prova scritta del 5 febbraio 2013 Corso di Programmazione Anno Accademico 2012 2013 Prof. Giovanni Pighizzini della prova scritta del 5 febbraio 2013 Questo documento discute un esempio di soluzione di alcuni esercizi assegnati. Naturalmente

Dettagli

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo. Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 21 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40

Dettagli

Laboratorio di Sistemi Polimorfismo Java. Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java.

Laboratorio di Sistemi Polimorfismo Java. Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java. Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java. Di solito se abbiamo la struttura di una classe con gli attributi e i metodi possiamo istanziare

Dettagli

Ereditarietà e polimorfismo

Ereditarietà e polimorfismo Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Ereditarietà e polimorfismo Paolo Trunfio * * DEIS, Università della Calabria http://si.deis.unical.it/~trunfio

Dettagli

Dichiarazione di una classe. Dichiarazione ereditarietà

Dichiarazione di una classe. Dichiarazione ereditarietà Introduzione Il Java è un linguaggio di programmazione orientato agli oggetti (OOL), perché permette di realizzare in un programma tutti i concetti alla base dell OOP quali: l astrazione dei dati, mediante

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Object Oriented Programming: Fondamenti Prof. Stefano Mariani Dott. Alket Cecaj Indice Introduzione all OOP Classi vs. oggetti Campi

Dettagli

Dal libro di Savitch & Carrano

Dal libro di Savitch & Carrano Dal libro di Savitch & Carrano Un eccezione (exception) è un oggetto che segnala l accadere di un evento anomalo durante l esecuzione di un metodo. Il processo di creazione di quest oggetto (cioè di generazione

Dettagli

Eccezioni e Thread (cenni)

Eccezioni e Thread (cenni) Eccezioni e Thread (cenni) Linguaggi di Programmazione: Paradigmi di Programmazione (Sperimentazioni) Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149

Dettagli

Gestione delle eccezioni

Gestione delle eccezioni Gestione delle eccezioni Le eccezioni sono un meccanismo per gestire situazioni anomale durante l esecuzione dei metodi. La gestione delle eccezioni deve garantire i seguenti principi: - le eccezioni non

Dettagli

Principi di Progettazione del Software a.a

Principi di Progettazione del Software a.a Principi di Progettazione del Software a.a. 2017-2018 Fondamenti di Java Ing. Obiettivi della lezione Introduzione alla programmazione Object Oriented Ereditarietà Polimorfismo Interfacce Eccezioni 2 1

Dettagli

OOP: L13: Eccezioni e loro trattamento in Java

OOP: L13: Eccezioni e loro trattamento in Java Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica A. Acc. 2005/2006 Programmazione Orientata agli Oggetti OOP: L13: Eccezioni e loro trattamento

Dettagli

Lezione 15 programmazione in Java. Nicola Drago Dipartimento di Informatica Università di Verona

Lezione 15 programmazione in Java. Nicola Drago Dipartimento di Informatica Università di Verona Lezione 15 programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Approfondimenti della programmazione OO Il modificatore abstract Le classi

Dettagli

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I {

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I { Interfacce Una interfaccia è un astrazione per un insieme di funzioni pubbliche delle quali si definisce solo la segnatura, e non le istruzioni. Un interfaccia viene poi implementata da una o più classi

Dettagli

Classi ed Oggetti. Fondamenti di Informatica A-K

Classi ed Oggetti. Fondamenti di Informatica A-K Classi ed Oggetti Fondamenti di Informatica A-K Esercitazione 5 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti,

Dettagli

Introduzione. Java. Errori. Errori

Introduzione. Java. Errori. Errori Java gestire gli errori con le eccezioni G. Prencipe prencipe@di.unipi.it Introduzione La filosofia generale di Java è che un programma con errori non deve girare Una grossa parte viene fatta (come avete

Dettagli

Obiettivi. Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione.

Obiettivi. Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione. Obiettivi Unità B2 Gli oggetti: concetti avanzati Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione Ereditarietà L ereditarietà permette

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

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.

Dettagli

Capitolo 7 Un primo sguardo agli oggetti Schema e valori Elementi di classe e d istanza

Capitolo 7 Un primo sguardo agli oggetti Schema e valori Elementi di classe e d istanza I Sommario Prefazione xiii Capitolo 1 Introduzione alla programmazione 1 1.1 Hardware e software......................... 1 1.2 La programmazione......................... 4 1.2.1 I paradigmi di programmazione...............

Dettagli

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà L ereditarietà è il meccanismo attraverso cui viene implementata la relazione di specializzazione (is-a). L ereditarietà è il meccanismo attraverso cui una classe (derivata) eredita da un altra classe

Dettagli

Java fornisce una ricca gerarchia di classi di eccezioni: Object

Java fornisce una ricca gerarchia di classi di eccezioni: Object Java fornisce una ricca gerarchia di classi di eccezioni: Object +----Throwable +----Error +----VirtualMachineError... +----Exception +----RuntimeException +----ArithmeticException +----IndexOutOfBoundsException

Dettagli

LE ECCEZIONI. Dott. Riccardo Zese.

LE ECCEZIONI. Dott. Riccardo Zese. LE ECCEZIONI Dott. Riccardo Zese riccardo.zese@unife.it Che cosa sono le eccezioni In un programma si possono generare situazioni critiche che provocano errori. Non è però accettabile, soprattutto in applicazioni

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Relazioni tra classi Fondamenti di Informatica 27. Standard UML 2. parte Generalizzazione: (ereditarietà) relazione in cui una classe (sottoclasse) eredita gli attributi e le operazioni di una superclasse:

Dettagli

Proprietà delle Classi e degli Oggetti in Java

Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di

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 alla programmazione con linguaggio Java {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F.

Introduzione alla programmazione con linguaggio Java {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Introduzione alla programmazione con linguaggio Java 2004 {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Saba } Note di Copyright Queste trasparenze (slide) sono coperte dalle

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,

Dettagli

Il linguaggio Java. Le eccezioni

Il linguaggio Java. Le eccezioni Il linguaggio Java Le eccezioni Shit happens! Gli errori nei programmi si verificano Quello che è realmente importante è: cosa succede dopo che un errore si è verificato? TIGA 2 Eccezione Un'eccezione

Dettagli

Paradigmi della PO. Incapsulamento. Ereditarietà. Polimorfismo. Software per TLC - AA 2008/2009 1

Paradigmi della PO. Incapsulamento. Ereditarietà. Polimorfismo. Software per TLC - AA 2008/2009 1 Incapsulamento Paradigmi della PO Ereditarietà Polimorfismo Software per TLC - AA 2008/2009 1 Incapsulamento Una classe contiene dati e metodi Filosofia Ai dati si accede solo attraverso i metodi I metodi

Dettagli

Proprietà delle Classi e degli Oggetti in Java

Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di

Dettagli

Ereditarietà: concetti di base

Ereditarietà: concetti di base : concetti di base L ereditarietà è uno dei concetti base della programmazione ad oggetti Concetto di base: l ereditarietà permette di usare una classe precedentemente definita per la definizione di una

Dettagli

Gerarchia di classi Java 1

Gerarchia di classi Java 1 Specializzare un modello Gerarchia di classi Java Corso di laurea in Una classe modella un pezzo di realtà Una macchina, una moneta, un impiegato Spesso è necessario specializzare la versione originale

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Java Classi Dichiarazione di Classi [Doc comment] [Modifiers] class ClassName [ extends SuperClassName] [ implements InterfaceName [, InterfaceName]...] {ClassBody Doc comment commento

Dettagli