CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299 - 339.2365416 - 349.4152010 E-mail: [email protected] - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL’ANNO 1 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata SOMMARIO Fondamenti di Java Usare i Data Type Java Usare operatori e costrutti decisionali Creare ed usare array Usare i costrutti ciclici Lavorare con i metodi e l’incapsulamento L’ereditarietà Eccezioni 2 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Concetto di array Dichiarare, instanziare, inizializzare un array monodimensionale Dichiarare, instanziare, inizializzare un array multidimensionale Dichiarare ed usare un ArrayList 3 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Concetto di array Sono OGGETTI Possono contenere altri oggetti o tipi primitivi Contengono valori costanti Hanno operatori Hanno costruttori La lunghezza è nel campo length (NON È UN METODO!) 4 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Concetto di array Accedere ad un elemento di un array int[] ai = {1,2,3}; System.out.println(ai[1]); Lunghezza di un array System.out.println(ai.length); //array di int //stampa il secondo elemento dell’array //(zero-based!) //stampa la lunghezza dell’array Eccezioni sollevate nell’uso di un array ArrayIndexOutOfBoundsException IndexOutOfBoundsException NullPointerException 5 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Concetto di array Array null: rischio di Null PointerException int[] ai = null; Array di elementi null Integer[] ai = {null, null, null}; Array di lunghezza zero: rischio di ArrayIndexOutOfBoundsException int[] ai = new int[0]; Array monodimensionali int[] ai1 = new int[3]; int[] ai2 = new int[6]; Array multidimensionali int[][] ai = new int[3][4]; 6 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Dichiarare, instanziare, inizializzare un array monodimensionale Dichiarazione di un array monodimensionale int[] ai; int ai[]; //valida //valida Instanziare e dimensionare un array monodimensionale int[] ai = new int[10]; Tutti gli elementi di un array di primitivi sono automaticamente inizializzati ai valori di default 7 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Dichiarare, instanziare, inizializzare un array monodimensionale Inizializzare un array monodimensionale con un elenco int[] ai3 = {1, 2, 3}; String[] as3 = {«1», «2», «3»}; String[] as3 = new String[]{«1», «2», «3»}; String[] as3 = new String[3]{«1», «2», «3»}; //Non valido!!! Inizializzare un array monodimensionale con un ciclo int[] ai3 = new int[3]; int i = 0; while (i < 3) ai3[i] = 2*i++; 8 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Dichiarare, instanziare, inizializzare un array multidimensionale Dichiarazione di un array multidimensionale int[][] ai; int ai[][]; int[] ai[]; //valida //valida //valida int[3][] ai3 = { { 1, 2, 3} , { 4, 5, 6, 7}, { 8, 9, 10 } }; //ai3 è un array di tre elementi di cui ognuno è un array 9 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Dichiarare, instanziare, inizializzare un array multidimensionale In un’espressione di creazione di un array multidimensionale ci può essere un’espressione per ogni dimensione, ognuna in parentesi Le dimensioni vengono calcolate a partire da sinistra e continuando verso destra In caso di errore tutto ciò che viene dopo non viene calcolato int i = 4; int ia[][][] = new int[i][i = 3][i]; System.out.println( ia.length + ", " + ia[0].length+", "+ ia[0][0].length); //Stamperà 4, 3, 3 10 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Dichiarare ed usare un ArrayList Proprietà dell’ArrayList Ridimensionato dinamicamente a runtime Consuma un po’ più di memoria rispetto ad un array per mantenere la struttura interna Come un array, non è thread safe Consente un accesso in tempo costante a tutti i suoi elementi Fornisce un accesso random ai suoi elementi (senza conoscerne l’ordine) Al di sotto c’è un array 11 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Dichiarare ed usare un ArrayList ArrayList è una sottoclasse di AbstractList Interfacce implementate: java.lang.Object - java.util.AbstractCollection<E> - java.util.AbstractList<E> java.util.ArrayList<E> Serializable Cloneable Iterable<E> Collection<E> List<E> RandomAccess Sottoclassi dirette: AttributeList RoleList RoleUnresolvedList 12 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Dichiarare ed usare un ArrayList Metodi dell’Arraylist add addAll clear contains ensureCapacity get indexOf isEmpty iterator remove removeAll set size toArray 13 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Dichiarare ed usare un ArrayList Dichiarazione di un ArrayList È facoltativo dichiarare il tipo di dato contenuto Non farlo significa evitare un controllo a compile time ArrayList<String> listOfStrings; //corretto ArrayList listOfStrings; //corretto 14 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata CREARE ED USARE ARRAY Dichiarare ed usare un ArrayList Uso di un ArrayList Non è possibile mettere tipi primitivi in un ArrayList, ma solo oggetti È possibile ordinare i suoi elementi usando il metodo Collections.sort() Eccezioni sollevate nell’uso di un ArrayList IndexOutOfBoundsException NullPointerException 15 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata DOMANDE? 16 Materiale redatto dal Prof. Fausto Dell'Anno in collaborazione col Centro Studi Ulisse Formazione e consulenza – © Riproduzione riservata