Corso di Reti di Calcolatori Programmazione Java

Slides:



Advertisements
Presentazioni simili
Massa Laura Mela Enrica
Advertisements

prompt> java SumAverage
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
Programmazione in Java
JAVA Franco Bombi 8 ottobre FB Introduzione Java è un linguaggio di impiego generale, basato su classi e orientato agli oggetti Java.
Java Contardi Carlo A.S. 2008/09.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
Programmazione in Java
1 Metodo I metodi sono uno strumento che i programmatori usano per strutturare i programmi, sia per renderli più facili da capire che per permettere il.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Fondamenti di Informatica A - Massimo Bertozzi I PUNTATORI.
Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella.
Programmazione in Java Parte II Lezione 5 Dott. Marco Faella.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Introduzione alla programmazione MIDI
© 2007 SEI-Società Editrice Internazionale, Apogeo
Sistemi e Applicazioni per l’Amministrazione Digitale
Java World Introduzione.
Maurizio Cozzetto, Francesco Sarasini
Java: concetti e costrutti base
Introduzione al linguaggio C
Programmazione per la Musica | Adriano Baratè
7. Strutture di controllo Ing. Simona Colucci
Unità didattica 1: Introduzione al linguaggio Java
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Corso Java Introduzione.
Java World Cicli e Array.
Corso Java Cicli e Array.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Programmazione e Laboratorio di Programmazione
Esercitazioni di C++ 31 dicembre 2018 Claudio Rocchini IGMI.
Programmazione e Laboratorio di Programmazione
Java: le basi del linguaggio
© 2007 SEI-Società Editrice Internazionale, Apogeo
Ricorsione 16/01/2019 package.
Programmazione e Laboratorio di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo
Programmazione e Laboratorio di Programmazione
APPUNTI SUL LINGUAGGIO C
APPUNTI SUL LINGUAGGIO C
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Eccezioni – Precisazioni e approfondimenti
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Algoritmi e strutture dati APPUNTI SUL LINGUAGGIO C
La struttura dei primi programma in C
Le stringhe in C++ Laboratorio 26 Aprile Dott. Serena Villata
APPUNTI SUL LINGUAGGIO C Allocazione dinamica della memoria
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
concetti ed applicazioni
Java Introduzione.
Array Un array è un contenitore “contiene” al massimo un numero predefinito di oggetti dello stesso tipo. Ogni oggetto dell'array è detto “elemento” Ad.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione Procedurale
Transcript della presentazione:

Corso di Reti di Calcolatori Programmazione Java 1. Introduzione a Java 29/11/2002 ing. G. Lo Presti

Cenni storici Cos’è Java? Presentato da Sun nel 1995 “A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable, high-performance, multithreaded, dynamic language.” Presentato da Sun nel 1995 Obiettivo principale: portabilità Versione attualmente disponibile: J2SE 1.4.1 (Ott. 2002) Continuamente sviluppato da Sun e da una grande comunità di sviluppatori Link di riferimento: http://java.sun.com/ Tutorial: http://java.sun.com/docs/books/tutorial/ API molto evoluta e ricca di funzionalità per ogni tipo di applicazione, ed in particolare per le applicazioni di rete. ing. G. Lo Presti

Strumenti e ambienti di sviluppo Strumenti del JDK ufficiale javac per compilare i sorgenti java per eseguire il bytecode appletviewer per eseguire le applet javadoc per generare la documentazione HTML Ambiente di sviluppo consigliato Borland JBuilder 7 Personal edition scaricabile gratuitamente da http://www.borland.com/products/downloads/ ing. G. Lo Presti

Java execution model Compilation of the Source Code to Byte-code Java source code Compilation of the Source Code to Byte-code Java Compiler Java byte-code Byte-code interpreter Byte-code compiler Java chip Java Machine (eg. mobile phone, etc.) CPU Native machine code Java Virtual Machine Execution of Byte-code CPU Java Virtual Machine ing. G. Lo Presti

Alcune regole di base Java è fortemente orientato agli oggetti Uso estensivo di classi e di package Il compilatore è case sensitive come in C/C++  Convenzioni: Nomi dei package tutti in minuscole Nomi delle classi e dei file sorgenti con l’iniziale maiuscola Nomi dei metodi e delle variabili con l’iniziale minuscola Nomi delle costanti tutti in MAIUSCOLE ing. G. Lo Presti

Il primo programma Java Un esempio di programma Java: Qualunque programma Java deve contenere una classe che includa il metodo main(). Tale metodo viene eseguito dalla JVM all’avvio del programma stesso. // Filename: HelloWorld.java /** A Java program that prints the message “Hello World” */ public class HelloWorld { public static void main(String[] args) { System.out.println(”Hello World”); /* System.out refers to standard output */ } ing. G. Lo Presti

Il primo programma Java Per compilare ed eseguire un programma javac HelloWorld.java java HelloWorld E’ possibile generare la documentazione di riferimento in formato HTML javadoc HelloWorld Nota: la documentazione prodotta con questo strumento è analoga a quella delle API Java ufficiali, consultabile all’indirizzo: http://java.sun.com/j2se/1.4.1/docs/api/ Maggiori dettagli più avanti… ing. G. Lo Presti

Il linguaggio: tipi predefiniti (richiami) Tipi primitivi byte, int, short, long, float, double char (Unicode, 2 byte) boolean NON c’è il pointer Tipi non primitivi: sono gestiti internamente come puntatori array (es. int[], String[]) String (diverso da char[] !) qualunque classe definita dal sistema o creata dall’utente (ereditano tutte da Object) ing. G. Lo Presti

Il linguaggio: costrutti (richiami) if – else while / do – while switch for try – catch – finally throws Per gestire le eccezioni Dettagli più avanti Sintassi sostanzialmente identica al C/C++ I costrutti if e while richiedono un’espressione di tipo boolean e non intera come in C/C++ Il costrutto switch richiede un’espressione di tipo int Java è fortemente tipizzato! ing. G. Lo Presti

Operatori ed espressioni Esistono quasi tutti gli operatori C, più alcuni nuovi Operatori mancanti: * e & perché i puntatori non sono visibili esplicitamente sizeof() Operatori nuovi: + per la concatenazione di stringhe L’accesso ai tipi non primitivi avviene sempre implicitamente per riferimento, quindi non è necessario gestire i puntatori. ing. G. Lo Presti

Variabili e loro scope Le variabili si dichiarano come in C Scope esempi: int i = 1; // tipo primitivo HelloWorld hello = new HelloWorld(); // tipo non primitivo // hello è un oggetto della classe HelloWorld String s = “test”; // equivalente alle versione più formale: String s = new String(“test”); // String è una classe! Scope Variabili di classe: visibili in tutta la classe Variabili locali: definite e visibili all’interno di un blocco di codice { … } Parametri dei metodi: visibili in tutto il corpo del metodo ing. G. Lo Presti

Array e tipi complessi Uso degli array: int[] a; // dichiarazione di un array a = new int[10]; // allocazione di memoria a[0] = 123; // adesso si può usare Un array è sempre un oggetto anche se il tipo degli elementi contenuti è primitivo Contiene quindi alcuni dati, ad esempio: a.length // lunghezza effettivamente allocata per a Va inizializzato allocando lo spazio di memoria come ogni variabile di tipo composto. Dopo l’allocazione, l’array viene riempito con valori nulli (0 per gli int, null per gli oggetti) ing. G. Lo Presti

Eccezioni Eccezione: “An event during program execution that prevents the program from continuing normally; generally, an error” [Tutorial]. E’ un modo per rendere più pulito il codice. Java mette a disposizione dei meccanismi per la gestione delle eccezioni 1) Segnalare (sollevare) un’eccezione quando si verifica un problema; 2) Gestire un eccezione sollevata da un punto di un programma; Sostanzialmente si tratta di un break incondizionato che interrompe l’esecuzione e ritorna al primo chiamante in grado di gestire il problema. ing. G. Lo Presti

Eccezioni Le eccezioni sono implementate come oggetti, istanze della classe Throwable; questa ha due sottoclassi: Error: si tratta di errori gravi come il crash della JVM. Exception: la maggior parte degli errori rientra in questa categoria ed è gestibile. Le API di Java includono diverse eccezioni corrispondenti a molti casi comuni (es.: FileNotFoundException, IOException, ArrayIndexOutOfBoundsException, ecc.). Noi useremo molto questo tipo di eccezioni. Questi oggetti vengono istanziati automaticamente dalla JVM e includono informazioni sull’errore verificatosi. Molto utili in fase di debug! ing. G. Lo Presti

Sollevare un’eccezione Si usa la clausola throw E’ obbligatorio specificare, nella dichiarazione del metodo, che può essere sollevata un’eccezione. Il compilatore impedisce la compilazione di programmi che non gestiscano le eccezioni sollevabili. Esempio: public double factorial(int x) throws ArithmeticException { if(x < 0) throw new ArithmeticException(“x must be >= 0”); … // normalmente calcola il fattoriale } ing. G. Lo Presti

Gestire un’eccezione Si usa il costrutto try – catch Stile: preoccuparsi prima del comportamento generale; gestire le eccezioni successivamente; gestire i diversi tipi di eccezione con catch successivi; passare al chiamante con throw le eccezioni non gestibili. public float getAverage(int[] data) { float avg = 0.0; try { for(int i = 0; i < data.length; i++) avg += data[i]; avg = avg / data.length; // !! return avg; } catch (ArithmeticException ae) { return 0.0; catch (NullPointerException e) { throw new Exception( “data is null! ”+ e.getMessage()); finally { // codice che viene eseguito // in ogni caso ing. G. Lo Presti

Gestire un’eccezione Se sono presenti più sezioni catch successive, vanno gestite prima le eccezioni di tipo più specifico (es. ArithmeticException) e poi quelle più generali (es. Exception, radice di tutte le possibili eccezioni); E’ buona norma gestire le eccezioni nel punto in cui si verificano e demandare il chiamante solo in casi gravi; Molti metodi predefiniti nelle API sollevano molti tipi di eccezioni! Proprietà della classe Exception In fase di creazione di un programma complesso, è opportuno gestire tutti i tipi di eccezioni con costrutti del tipo: try { … } catch(Exception e) { … } ing. G. Lo Presti

Riepilogo Java, JDK e ambienti di sviluppo Sintassi del linguaggio Java Tipi Costrutti Variabili Gestione delle eccezioni Costrutti e tecniche ing. G. Lo Presti