Telematica II 6. Ereditarieta /Polimorfismo in JAVA
|
|
- Donata Roberto
- 5 anni fa
- Visualizzazioni
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 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:
Dettagli19 - 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
DettagliLaboratorio 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
DettagliAgent 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 è
DettagliEccezioni. 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
DettagliEccezioni 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
DettagliGestione 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
DettagliProgrammazione 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:
DettagliCorso 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
DettagliInsegnamento 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
DettagliFONDAMENTI 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,
DettagliOCA 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
DettagliOCA 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
DettagliEccezioni 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
DettagliLe 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
DettagliProgrammazione 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
DettagliEccezioni 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,
DettagliLe 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
DettagliProgrammazione 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
DettagliProgrammazione 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
DettagliRETI 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
DettagliIl 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
DettagliProgettazione 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
Dettaglipublic 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
DettagliLe 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
DettagliProgrammazione 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
DettagliClassi 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
DettagliProgrammazione. 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
DettagliLe 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
DettagliEccezioni. 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
DettagliInformatica 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
DettagliFondamenti 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
DettagliI 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,
Dettagli18 - 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/
Dettagli17 - 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/
DettagliGestione 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
DettagliFondamenti 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
DettagliLe 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
DettagliA. 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),
DettagliLe 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
DettagliProgrammazione. 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
DettagliSommario. 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
DettagliGestione 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
DettagliGli 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
DettagliLaboratorio 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
Dettagliereditarietà 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
DettagliASD: 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
DettagliProgrammazione 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
DettagliEsempi 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
DettagliLa 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
Dettagli8. 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
DettagliProgrammazione 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
DettagliGESTIONE 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
DettagliGESTIONE 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
DettagliProgrammazione 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
DettagliNON 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/
DettagliINFORMATICA 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
DettagliGestire 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
DettagliLezione 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
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
DettagliRiassunto: 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,
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 20 febbraio 2012 TEMPO DISPONIBILE: 1 ora Negli
DettagliProgrammazione 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
DettagliProgrammazione. 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
DettagliSoluzione 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
Dettaglipublic 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
DettagliLaboratorio 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
DettagliEreditarietà 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
DettagliDichiarazione 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
DettagliFondamenti 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
DettagliDal 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
DettagliEccezioni 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
DettagliGestione 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
DettagliPrincipi 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
DettagliOOP: 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
DettagliLezione 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
DettagliInterfacce. 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
DettagliClassi 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,
DettagliIntroduzione. 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
DettagliObiettivi. 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
DettagliProgrammazione 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
DettagliProgrammazione 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.
DettagliCapitolo 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...............
DettagliEreditarietà. 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
DettagliJava 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
DettagliLE 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
DettagliFondamenti 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:
DettagliProprietà 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
DettagliConcetti 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
DettagliIntroduzione 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
DettagliFunzioni, 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,
DettagliIl 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
DettagliParadigmi 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
DettagliProprietà 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
DettagliEreditarietà: 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
DettagliGerarchia 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
DettagliIngegneria 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