SVJAES - Il linguaggio di programmazione Java (5 gg) OBIETTIVO: Al termine del corso, i partecipanti saranno in grado di: − Creare applicazioni in Java che utilizzano le funzionalità object-oriented del linguaggio Java, quali incapsulamento, ereditarietà e polimorfismo − Eseguire un'applicazione Java dalla riga di comando − Utilizzare i tipi di dati e le espressioni della tecnologia Java − Utilizzare i costrutti di controllo del flusso − Utilizzare array e altre raccolte di dati − Implementare tecniche di error-handling utilizzando la gestione delle eccezioni − Creare un'interfaccia grafica event-driven usando i componenti GUI della tecnologia Java: pannelli, pulsanti, etichette, campi di testo e aree di testo − Implementare le funzionalità di I/O per leggere e scrivere nei file di dati e di testo. − Creare programmi multithreaded − Creare un semplice client TCP/IP in grado di comunicare tramite socket. DESCRIZIONE: Durante il corso verranno trattati i seguenti argomenti: − Le principali funzioni della tecnologia Java − Le funzioni della Java Virtual Machine (JVM) − La programmazione Object-Oriented − − − − − − Descrizione e uso degli Identificatori, Keywords ,Tipi e array Descrizione delle classi e caratteristiche Definizione delle eccezioni e utilizzo delle asserzioni Costruzioni di Java GUIs e Applicazioni basate su GUI Threads; Flusso I/O Connessione di rete REQUISITI: I partecipanti devono essere in grado di: - Comprendere i principi della programmazione object-oriented - Creare o compilare semplici programmi in un linguaggio di programmazione, ad esempio C o C++, e aver creato e compilato semplici programmi Java - Creare e modificare file di testo utilizzando un editor di testo DESTINATARI: - Programmatori MATERIALE DIDATTICO: Attestato di frequenza DOTAZIONE SOFTWARE: Ciascun partecipante avrà a disposizione, una postazione allestita con il sistema operativo ed il software necessario alle esercitazioni. PROGRAMMA: Concetti base della tecnologia Java − Descrivere le principali funzioni della tecnologia Java − Scrivere, compilare ed eseguire una semplice applicazione Java − Descrivere le funzioni della Java Virtual Machine (JVM) − Definire il concetto di garbage collection − Elencare le tre attività eseguite dalla piattaforma Java per gestire la sicurezza del codice ant s.r.l. - Cap. Soc. 10.000,00 – Registro Imprese 1706778 – C.F. / P. IVA. 03860890965 Sede legale: C.so Buenos Aires, 47 – 20124 Milano – Tel. 02 29013496 1 Programmazione Object-Oriented − Definire i concetti di modellazione: astrazione, incapsulamento e pacchetti − Spiegare perché è possibile riutilizzare il codice applicativo della tecnologia Java − Definire i concetti di classe, membro, attributo, metodo, costruttore e pacchetto − Utilizzare nel modo appropriato i modificatori di accesso private e public, come indicato nelle linee guida dell'incapsulamento − Invocare un metodo su un particolare oggetto − Utilizzare la documentazione online sulle API della tecnologia Java Identificatori, Keywords e Tipi − Usare i commenti nel codice sorgente − Indicare le differenze tra gli identificatori validi e quelli non validi − Riconoscere le parole chiave della tecnologia Java − Elencare gli otto tipi primitivi − Definire i valori letterali per i tipi numerici e testuali − Definire i termini variabile primitiva e variabile di riferimento − Dichiarare variabili di tipo classe − Costruire un oggetto usando new − Descrivere l'inizializzazione predefinita − Descrivere il significato di una variabile di riferimento − Specificare le conseguenze dell'assegnazione di variabili di tipo classe Espressioni e Flow Control − Indicare le differenze tra una variabile di istanza e una variabile locale − Descrivere l'inizializzazione delle variabili di istanza − Identificare e correggere l'errore del compilatore "Possible reference before assignment" − Riconoscere, descrivere e utilizzare gli operatori di Java − Indicare le assegnazioni ammesse e non ammesse di tipi primitivi − Identificare le espressioni booleane e i loro requisiti nei costrutti di controllo − Riconoscere la compatibilità di assegnazione e i cast richiesti nei tipi fondamentali − Utilizzare i costrutti if, switch, for, while e do e le forme con etichetta di break e continue come strutture di controllo di flusso in un programma Arrays − Dichiarare e creare array di primitive, classi, o tipi di array − Indicare perché gli elementi di un array vengono inizializzati − Spiegare il modo in cui si possono inizializzare gli elementi di un array − Determinare il numero di elementi in un array − Creare un array multidimensionale − Scrivere il codice per copiare i valori da un array a un altro Le classi − Definire i concetti di ereditarietà, polimorfismo, overloading, overriding e invocazione di metodi virtuali − Usare i modificatori di accesso protected e predefinito (package-friendly) − Descrivere i concetti di costruttore e overloading del metodo − Descrivere le operazioni complessive di costruzione e inizializzazione di un oggetto Caratteristiche avanzate della classe − Creare variabili, metodi e inizializzatori static − Creare classi, metodi e variabili final − Creare e utilizzare i tipi enumerati − Usare l'istruzione static import − Creare classi e metodi astratti − Creare e usare un'interfaccia ant s.r.l. - Cap. Soc. 10.000,00 – Registro Imprese 1706778 – C.F. / P. IVA. 03860890965 Sede legale: C.so Buenos Aires, 47 – 20124 Milano – Tel. 02 29013496 2 Eccezioni e asserzioni − Definire le eccezioni − Usare le istruzioni try, catch e finally − Descrivere le categorie di eccezioni − Identificare le eccezioni comuni − Sviluppare programmi per gestire le eccezioni personalizzate − Utilizzare le asserzioni − Indicare le differenze tra l'utilizzo appropriato e non appropriato delle asserzioni − Abilitare le asserzioni al runtime Applicazioni basate sul Testo Text-Based − Scrivere un programma che utilizza gli argomenti dalla riga di comando e le proprietà dei sistemi − Scrivere un programma che legge dall'input standard − Descrivere l'output e l'input formattati di tipo C − Scrivere un programma in grado di creare, leggere e scrivere file − Descrivere la gerarchia di base delle collezioni nell'SDK Java 2 − Scrivere un programma per eseguire l'iterazione di una collezione − Scrivere un programma che utilizzi le collezioni generiche Costruire Java GUIs − Descrivere il pacchetto AWT (Abstract Window Toolkit) e i suoi componenti − Definire i seguenti termini: contenitori, componenti, e layout manager e descrivere il modo in cui vengono utilizzati per creare un'interfaccia grafica − Usare i layout manager − Usare FlowLayout, BorderLayout e GridLayout per ottenere il layout dinamico desiderato − Aggiungere componenti a un contenitore − Usare in modo appropriato i contenitori Frame e Panel − Descrivere il funzionamento dei layout complessi con contenitori annidati Trattare Evento GUI Event Handling − Definire gli eventi e la gestione degli eventi − Scrivere il codice per gestire gli eventi che si verificano in una GUI − Descrivere il concetto di classe adattatore e indicare quando e come viene utilizzata − Determinare l'azione che ha generato l'evento dalle informazioni sull'oggetto dell'evento − Identificare le interfacce listener appropriate per una varietà di tipi di eventi − Creare i metodi appropriati per la gestione degli eventi per i vari tipi di eventi − Comprendere l'utilizzo delle classi interne e delle classi anonime nella gestione degli eventi Applicazioni basate su GUI − Identificare i principali componenti di AWT e gli eventi che producono − Descrivere le creazione di una barra di menu, di un menu e delle voci del menu in una GUI Java − Indicare come modificare il colore e il tipo di carattere di un componente Threads − Definire un thread − Creare thread separati in un programma Java, controllando il codice e i dati che sono utilizzati dai thread − Controllare l'esecuzione di un thread e scrivere codice indipendente dalla piattaforma che utilizzi i thread − Descrivere le difficoltà che possono sorgere quando più thread condividono gli stessi dati − Utilizzare wait e notify per comunicare tra i thread − Utilizzare synchronized per evitare il danneggiamento dei dati Flusso I/O − Descrivere le funzioni principali del pacchetto java.io − Costruire i nodi e i flussi di elaborazione e utilizzarli in modo appropriato − Indicare le differenze tra reader, writer e flussi ed effettuare la scelta appropriata ant s.r.l. - Cap. Soc. 10.000,00 – Registro Imprese 1706778 – C.F. / P. IVA. 03860890965 Sede legale: C.so Buenos Aires, 47 – 20124 Milano – Tel. 02 29013496 3 Connessione di rete − Sviluppare il codice per impostare una connessione di rete − Conoscere le procedure di gestione di reti TCP/IP (Transmission Control Protocol/Internet − Protocol) − Usare le classi ServerSocket e Socket per l'implementazione di client e server TCP/IP ant s.r.l. - Cap. Soc. 10.000,00 – Registro Imprese 1706778 – C.F. / P. IVA. 03860890965 Sede legale: C.so Buenos Aires, 47 – 20124 Milano – Tel. 02 29013496 4