Programmazione in Java. Indipendenza dalla piattaforma. Indipendenza dalla piattaforma. Autore: Roberto Fabbrica Diapo 1.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione in Java. Indipendenza dalla piattaforma. Indipendenza dalla piattaforma. Autore: Roberto Fabbrica Diapo 1."

Transcript

1 1 Programmazione in Java Java è un linguaggio di programmazione orientato agli oggetti ed indipendente dalla piattaforma. Orientato agli oggetti: segue i paradigmi della programmazione orientata agli oggetti (OOP); Indipendente dalla piattaforma: le applicazioni scritte in Java possono essere eseguite su una moltitudine di piattaforme diverse (Windows, Unix, Mac, ecc.). 2 Indipendenza dalla piattaforma Un applicazione scritta in Java, una volta compilata, può essere eseguita su praticamente ogni piattaforma: Windows, Unix, Mac, altri sistemi operativi proprietari. Questo perché un applicazione Java viene eseguita dalla Java Virtual Machine (JVM), una macchina virtuale che astrae dal sistema operativo su cui viene installata. Attualmente esistono JVM per quasi ogni ambiente di elaborazione conosciuto. 3 Indipendenza dalla piattaforma App. Java 1 App. Java 2 Java Virtual Machine App. 1 App. 2 Sistema Operativo Hardware

2 4 Paradigmi della OOP I paradagmi relativi alla programmazione orientata agli oggetti sono concetti di progettazione e di programmazione: Concetto di oggetto con attributi e metodi; Concetto di interfaccia; Concetto di ereditarietà; Concetto di polimorfismo. 5 Concetto di oggetto Un oggetto è una scatola nera che espone all esterno attributi (entità a cui è possibile assegnare e da cui è possibile ottenere valori) e metodi (funzioni che è possibile richiamare, eventualmente specificando dei parametri, e che modificano lo stato dell oggetto e/o restituiscono valori): OGGETTO attributo metodo 6 Concetto di oggetto Per gli attributi ed i metodi, in Java vengono definiti tre livelli di visibilità: Pubblico (public): visibile da tutti; Protetto (protected):visibile solo dagli oggetti che ereditano; Privato (private): visibile solo dall interno dello stesso oggetto.

3 7 Concetto di oggetto In Java, un oggetto è un istanza di una classe. In altre parole, una classe è un descrittore, cioè un entità che descrive le proprietà ed il comportamento, di un oggetto. In parole povere, la classe è per gli oggetti quello che rappresenta il tipo per una variabile nell ambito della programmazione strutturata. Ne deriva immediatamente che più oggetti sono generalmente istanza della stessa classe. 8 Concetto di oggetto Classe Istanza 1 Istanza 2 Istanza 3 9 Concetto di interfaccia L interfaccia è una lista di metodi che una classe può implementare, cioè descrivere implementandone le caratteristiche e le funzionalità. Questo significa che un interfaccia non definisce i metodi, ma solo il loro nome ed i loro parametri: OGGETTO metodo 1 metodo 2 Interfaccia

4 10 Concetto di interfaccia Il concetto di interfaccia è importante in quanto permette: di fornire specifiche precise a chi deve sviluppare una classe (progettista => sviluppatore); di fornire una chiara descrizione dell oggetto a chi deve decidere come utilizzarlo (sviluppatore => progettista). 11 Concetto di ereditarietà Uno dei paradigmi più importanti della programmazione orientata agli oggetti è il concetto di ereditarietà. Tramite opportuni meccanismi, è possibile ereditare in una classe attributi e metodi di un altra classe più generica, specializzandola secondo le necessità, senza dover ricrearla da capo. Questo permette, fra l altro, di realizzare librerie di classi generiche riutilizzabili. 12 Concetto di ereditarietà Classe Classe Eredita attributo 1 metodo 1 attributo 1 (ereditato) metodo 1 (ereditato) attributo 2 metodo 2

5 13 Concetto di ereditarietà Questo concetto introduce grandi vantaggi in termini di riutilizzo e di manutenibilità del codice. Il riutilizzo è possibile grazie alla possibilità di generare classi generiche affinate da classi più specifiche. La manutenibilità è possibile grazie alla miglior organizzazione del codice e delle varie funzionalità. 14 Concetto di polimorfismo Il supporto al polimorfismo permette di creare metodi omonimi con comportamenti diversi. Esistono due tipi di polimorfismo: polimorfismo orizzontale: permette di definire metodi omonimi con comportamenti diversi a seconda dei parametri; polimorfismo verticale: permette di modificare il comportamento di un metodo ereditato. 15 Concetto di polimorfismo Un esempio di polimorfismo orizzontale è il seguente: intero Somma(intero a, intero b) reale Somma(reale a, reale b) stringa Somma(stringa a, stringa b) Questi tre metodi eseguono concettualmente la stessa operazione, ma con dati diversi, quindi con risultati diversi.

6 16 Concetto di polimorfismo Un esempio di polimorfismo verticale è il seguente: Classe Classe Eredita int Elabora(int a, int b) int Elabora(int a, int b) Il metodo della classe che eredita ricopre quello della classe ereditata. 17 Esempio di classe Java Nel seguito viene proposto un esempio di classe Java, con attributi, costruttori e metodi. Successivamente, verrà creata un applicazione che utilizza oggetti di questa classe. In questa sede non verranno prese in considerazione le applet, visto che esulano dagli obiettivi di questo corso. Si tenga inoltre presente che Java è un linguaggio di programmazione case sensitive. 18 Attributi Tramite il codice seguente si definiscono gli attributi della classe di esempio (pubblica). Questi attributi sono privati: è infatti buona norma permettere sempre e comunque l accesso agli attributi solo attraverso metodi appositi: public class CognomeNome { private String nome; private String cognome;

7 19 Costruttori I costruttori permettono di definire come può essere inizializzato un oggetto: public class CognomeNome { public CognomeNome() { nome = ; cognome = ; public CognomeNome(String nome, String cognome) { this.nome = nome; this.cognome = cognome; 20 Metodi I metodi definiscono gli accessi agli attributi e le funzionalità necessarie all oggetto: public class CognomeNome { public void set(string nome, String cognome) { this.nome = format(nome); this.cognome = format(cognome); public void set(string cognome) { this.nome = ; this.cognome = format(cognome); public String getnome() { return nome; public String getcognome() { return cognome; private String format(string s) { 21 Esempio di classe Java Questa classe è, a tutti gli effetti, utilizzabile per la creazione di oggetti Java, utilizzabili per la memorizzazione di nome e cognome formattati. Perché un applicazione sia però utilizzabile è necessario definire un qualche punto di partenza per l esecuzione. In Java, questa è una funzione chiamata main, che permette di definire il codice minimo per lo start dell applicazione e l utilizzo di tutti gli altri oggetti.

8 22 Esempio di classe Java Ecco, quindi, l ultimo metodo della classe di esempio, contenente codice che utilizza un istanza dell oggetto definito, che realizza l applicazione: public static void main(string[] args) { CognomeNome cn1 = new CognomeNome(); cn1.set( Paolo, Rossi ); CognomeNome cn2 = new CognomeNome( Luca, Verdi ); System.out.println( cn1 = + cn1.getnome() + + cn1.getcognome()); System.out.println( cn2 = + cn2.getnome() + + cn2.getcognome()); 23 Compilazione ed esecuzione Una volta terminata la codifica è necessario salvare il codice in un file denominato CognomeNome.java. Java richiede infatti un organizzazione delle classi in package, che ha come regola principale la denominazione dei file con lo stesso nome della classe pubblica che contengono (in maniera case sensitive). 24 Compilazione ed esecuzione La compilazione del sorgente Java avviene con il comando seguente: C:\>javac CognomeNome.java Se il codice è corretto, la compilazione restituisce un file contenente bytecode Java, denominato CognomeNome.class. Per eseguire il codice è sufficiente utilizzare il comando seguente: C:\>java CognomeNome

9 25 Compilazione ed esecuzione L esecuzione del codice di esempio descritto finora ha, come prevedibile, il seguente risultato: cn1 = Paolo Rossi cn2 = Luca Verdi 26 Altri concetti importanti Qualificatore static: un attributo od un metodo definito static è un entità di classe, cioè un entità che gode delle seguenti caratteristiche peculiari: 1. Può essere invocato riferendosi alla classe e non ad un oggetto istanza della classe; 2. Il valore, nel caso di un attributo, è condiviso fra tutti gli oggetti istanza della classe. 27 Altri concetti importanti Qualificatore final: un attributo od un metodo definito final è un entità costante, cioè un entità che assume un determinato valore per definizione, senza che questo possa essere successivamente modificato. Per un attributo questo ha significato di costante vero e proprio. Per un metodo questo significa che non può essere ridefinito dalle classi che lo ereditano.

10 28 Altri concetti importanti Clausola import: questa clausola permette di dichiarare quali altre classi si intende utilizzare all interno della classe che si sta realizzando. Per dichiarare l intento di utilizzare tutte le classi che forniscono accesso alle componenti grafiche, per esempio, si utilizza la seguente clausola: import java.awt.*; 29 In Java, come in tutti gli altri linguaggi di programmazione, alcune operazioni provocano il verificarsi di eventi che necessitano di gestione particolare. Nell ambito dei linguaggi di programmazione orientati agli oggetti il caso più caratteristico è quello del riferimento ad attributi o metodi di un oggetto non inizializzato. In Java, in questi casi vengono lanciate eccezioni che, se non correttamente gestite, provocano la terminazione dell esecuzione. 30 Supponiamo di compilare ed eseguire il codice seguente: public class Prova { public int valore; public static void main(string[] args) { Prova p = new Prova(); p = null; p.valore = 1;

11 31 Il risultato sarà la terminazione con errore a causa di un eccezione del tipo NullPointerException. Le eccezioni possono però essere gestite tramite l utilizzo di blocchi detti try-catch, che permettono di gestire in maniera più elegante, e senza la terminazione dell applicazione, eccezioni di questo tipo. L esempio seguente mostra il codice precedente modificato in modo da gestirne le eccezioni. 32 public class Prova { public int valore; public static void main(string[] args) { Prova p = new Prova(); p = null; try { p.valore = 1; catch (NullPointerException npe) { System.out.println( Eccezione catturata: npe.tostring()); 33 In questo caso, il programma termina senza errori segnalando l eccezione catturata. Naturalmente, in molte applicazioni reali il blocco di codice adibito alla gestione non si limiterà a segnalare l eccezione come in questo caso, ma la gestirà in maniera tale da permettere il continuare dell esecuzione.

12 34 Un altro concetto particolarmente importante nell ambito della gestione delle eccezioni è quello di delega della gestione al richiamante un metodo. Supponiamo di avere un metodo come il seguente: public boolean getcondizione(string s) { s = null; s.equals( Java ); Come facilmente immaginabile, l esecuzione di questo codice genera un eccezione che termina l esecuzione. 35 Pur essendo possibile utilizzare un blocco trycatch all interno del metodo, è possibile anche delegare esplicitamente il chiamante il metodo alla gestione dell eccezione, dichiarandolo nell intestazione del metodo: public boolean getcondizione(string s) throws NullPointerException { s = null; s.equals( Java ); 36 Si noti che la gestione delle eccezioni è effettivamente importante durante l utilizzo di oggetti complessi, dove possono accadere eventi non prevedibili dallo sviluppatore a causa, per esempio, di anomalie sulle risorse referenziate. In particolare, il compilatore Java obbliga alla gestione di alcune eccezioni strategiche impedendo la compilazione nel caso in cui lo sviluppatore non lo faccia.

13 37 Riferimenti L ambiente di sviluppo standard e la documentazione ufficiale del linguaggio Java è reperibile sul sito di SUN In particolare, sono di fondamentale importanza il JDK (Java Development Kit) 1.3 (ultima versione disponibile), la documentazione relativa (scaricabile indipendentemente) ed il Java Tutorial (che contiene teoria ed esempi su quasi tutto il mondo Java).

14 This document was created with Win2PDF available at The unregistered version of Win2PDF is for evaluation or non-commercial use only.

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

Java SE 7. Introduzione.

Java SE 7. Introduzione. Java SE 7 Introduzione diegozabot@yahoo.it ursula.castaldo@gmail.com Java Java è un linguaggio di programmazione. Inizialmente usato per creare semplici programmi nelle pagine web (chiamati applets), Java

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

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Cosa è un calcolatore? Hardware Processore Memoria Periferiche Funzionamento Esegue istruzioni elementari Esegue istruzioni molto velocemente Deve essere programmato Il

Dettagli

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Programmazione Laurea in Bioinformatica Laboratorio di Programmazione Laurea in Bioinformatica Web: http://www.scienze.univr.it/fol/main?ent=oi&id=34121 Docente: Carlo Drioli Email: drioli@sci.univr.it 2007/2008 Lucidi a cura di Nicola Drago,

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni

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 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

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

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

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente

Dettagli

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmi Un programma è un insieme di istruzioni che il computer deve seguire Usiamo programmi in continuazione

Dettagli

Introduzione a Java. Riferimenti

Introduzione a Java. Riferimenti Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia

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

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA9 B3.1 Mutua esclusione 1 Prerequisiti Programmazione concorrente Sezione critica Mutua esclusione lock() e unlock() 2 1 Introduzione Si considerino le seguenti situazioni

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

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

Modello procedurale versus modello O-O

Modello procedurale versus modello O-O Modello procedurale versus modello O-O Quando si scrive un programma si crea dentro il calcolatore un modello di una porzione del mondo reale. I linguaggi di programmazione procedurali consentono di costruire

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

Introduzione Programmazione Java

Introduzione Programmazione Java Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea

Dettagli

Strumenti Java. Fondamenti di informatica L-B A.A Alessandra Toninelli

Strumenti Java. Fondamenti di informatica L-B A.A Alessandra Toninelli Strumenti Java Fondamenti di informatica L-B A.A. 2006-2007 Alessandra Toninelli atoninelli@deis.unibo.it Cosa installare? J2SE SDK Software Development Kit (JDK): Contiene: tutte le classi con relativo

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 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 Paradigma OO Incapsulamento Polimorfismo e overloading Esercizi svolti Esercizi proposti Paradigma OO Nella programmazione tradizionale,

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

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

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

Introduzione al corso. Obiettivo del corso

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

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

L oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto

L oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto Usare e costruire oggetti Variabili e Oggetti Lo spazio di memoria di Java Le API di Java Gli oggetti sono entità di un programma che si possono manipolare invocando i metodi System.out oggetto della classe

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

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010 Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori l Introduzione ai Thread in Java A.A. 2009/2010 1 Thread Un thread è un flusso sequenziale di esecuzione di istruzioni all interno

Dettagli

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

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

Dettagli

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

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

Dettagli

This document was created with Win2PDF available at http://www.win2pdf.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only. This page will not be added after purchasing

Dettagli

Prof. Pagani corrado JAVA

Prof. Pagani corrado JAVA Prof. Pagani corrado JAVA NASCITA DI JAVA Java è stato creato, a partire da ricerche effettuate alla Stanford University agli inizi degli anni Novanta, da un gruppo di esperti sviluppatori capitanati da

Dettagli

Ereditarietà e Polimorfismo

Ereditarietà e Polimorfismo Ereditarietà e Polimorfismo Riusare il software A volte si incontrano classi con funzionalità simili In quanto sottendono concetti semanticamente vicini È possibile creare classi disgiunte replicando le

Dettagli

E7 Esercizi sul Capitolo 7 Realizzazione di Classi

E7 Esercizi sul Capitolo 7 Realizzazione di Classi E7 Esercizi sul Capitolo 7 Realizzazione di Classi Esercizio 1 (esercizio 7.1 del libro di testo). Nella classe Studente definita di seguito indicare le variabili d istanza, le variabili di classe e le

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Esercitazione n 1. Obiettivi

Esercitazione n 1. Obiettivi Esercitazione n 1 Obiettivi Introduzione all utilizzo di Java Development Kit (JDK) versione 1.3 Sviluppare programmi Java tramite linea di comando Es: javac, java, jdb, javadoc Primo esempio di programma

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 orientata agli oggetti (prima parte) Rel 1.0

Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 1.0 Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 10 a cura del prof Francesco Tappi Il paradigma orientato agli oggetti implica lo sviluppo di unità di programmazione attive, chiamate

Dettagli

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

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

La Gestione della Memoria. Carla Binucci e Walter Didimo

La Gestione della Memoria. Carla Binucci e Walter Didimo La Gestione della Memoria Carla Binucci e Walter Didimo Esecuzione di programmi Java L esecuzione di un programma Java richiede: la compilazione del codice Java in bytecode Java (un linguaggio macchina

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

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 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

Java Gli array. Array

Java Gli array. Array Java Gli array 1 Gli array In generale un array è una sequenza di locazioni di memoria, che contengono entità dello stesso tipo, e a cui si può fare riferimento con un nome comune Le entità che compongono

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

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

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni

Dettagli

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Introduzione a Java IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e comprensibile da

Dettagli

Parte prima: le basi della programmazione Java

Parte prima: le basi della programmazione Java Parte prima: le basi della programmazione Java 1. Java: una breve descrizione Java è un linguaggio di programmazione creato dalla Sun Microsystems e concepito da James Gosling, Patrick Naughton, Chris

Dettagli

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0} 16181 Nome Cognome A domande a risposta multipla con n scelte, la risposta corretta vale (n-1)/n*difficoltàdomanda, la risposta errata -1/n*difficoltà domanda, la risposta non data. Eseguendo il frammento

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA4 A2 Utilizzo di classi 1 Prerequisiti Implementazione di classi Funzionamento di una classe Parametri formali e attuali di una funzione 2 1 Introduzione In questa

Dettagli

Usare e costruire oggetti. Concetti Fondamentali. Interfaccia Pubblica di una. Application Program Interface

Usare e costruire oggetti. Concetti Fondamentali. Interfaccia Pubblica di una. Application Program Interface Concetti Fondamentali Interfaccia pubblica di una classe Le API di Java Lo spazio di memoria della macchina astratta Java Blocchi e sottoblocchi Variabili di frame e loro visibilità Importazioni di classi

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

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

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA1 1.1 Programmazione base 1 Prerequisiti Saper scrivere algoritmi elementari Tecniche elementari di sviluppo di una applicazione Modalità a riga di comando Utilizzo

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

Lezione 13 Classi interne

Lezione 13 Classi interne Lezione 13 Classi interne Questa lezione chiude la parte del corso più squisitamente dedicata alla programmazione orientata agli oggetti con Java. Sarà esaminato un nuovo tipo di classi, finora taciuto,

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Polimorfismo - d Regole Sintattiche e Semantiche versione 1.2 Questo lavoro è concesso in uso secondo i termini di

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

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 C1 Incapsulamento e tecniche OOP 1 Prerequisiti Tecnica elementare della programmazione Principi di programmazione OOP Metodologie di progettazione software 2 1 Introduzione

Dettagli

Fondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti

Fondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti Fondamenti di Programmazione Prof.ssa Elisa Tiezzi Programmazione orientata a oggetti 1 Programmazione OO Concetti base: dati istruzioni Dati: variabili tipi Istruzioni: istruzioni base strutture di controllo

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

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Componenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

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

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

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

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

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini ed esercizi aggiuntivi Gli esercizi proposti sono utili per rivedere gli esempi riportati, che sono stati sviluppati e discussi

Dettagli

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate

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 Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO

Dettagli

OOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi

OOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi OOP in C++ Classi e Oggetti Una classe èuntipochehavariabili ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi Una variabile ab di un tipo

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Modulo 2: Strutture fondamentali della programmazione Java

Modulo 2: Strutture fondamentali della programmazione Java Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti

Dettagli

Java Gli array. Array

Java Gli array. Array Java Gli array 1 Gli array In generale un array è una sequenza di locazioni di memoria, che contengono entità dello stesso tipo, e a cui si può fare riferimento con un nome comune Le entità che compongono

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

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

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 API di Java Istruzione di scrittura Istruzione di lettura 21/03/2011 2 API di Java Java è un linguaggio orientato agli oggetti basato

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori 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

Dettagli

Java Native Interface Appunti

Java Native Interface Appunti Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per

Dettagli

Oggetto software. stati o proprietà (variabili) comportamenti o metodi (funzioni)

Oggetto software. stati o proprietà (variabili) comportamenti o metodi (funzioni) Le classi Oggetto software stati o proprietà (variabili) comportamenti o metodi (funzioni) Bicicletta cambia rapporto 24 kmh rallenta accelera 90 ped/min quinto rapporto istanze e membri di classe Nel

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

Oggetti e classi. Cos è un oggetto

Oggetti e classi. Cos è un oggetto Oggetti e classi Cos è un oggetto Basta guardarsi intorno per scoprire che il mondo reale è costituito da oggetti: libri, biciclette, giocattoli, ma anche ragazzi, bambini, fiori, gatti, cani, fiumi, montagne,

Dettagli

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali Programmazione a Oggetti Lezione 7 Il linguaggio Java: aspetti generali Sommario Obiettivi di JAVA Portabilità: produrre codice eseguibile su più piattaforme (JVM) Affidabilità: Evitare il più possibile

Dettagli

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61 Capitolo 5 Array e collezioni c 2005 Pearson Education Italia Capitolo 5-1 / 61 Sommario: Array e collezioni 1 Array Array di oggetti Lunghezza di un array Accesso agli elementi di un array Array e cicli

Dettagli

Multithreading in Java I parte. Lorenzo Gallucci

Multithreading in Java I parte. Lorenzo Gallucci Multithreading in Java I parte Lorenzo Gallucci Java: un linguaggio ed un sistema predisposti per il multitasking È possibile creare e gestire Thread nativamente (senza dover ricorrere a librerie esterne)

Dettagli

Introduzione D B M G

Introduzione D B M G Introduzione D B M G Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS D B M G 2 Gestione delle

Dettagli

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate

Dettagli

Introduzione a Java A. FERRARI

Introduzione a Java A. FERRARI Introduzione a Java A. FERRARI La nascita di Java 1991 - James Gosling lavora al Green Project (SUN) per studiare la convergenza tra dispositivi di elettronica di consumo e computer 1992 il Green Project

Dettagli