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.

Slides:



Advertisements
Presentazioni simili
Ambiente Java.
Advertisements

Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Informatica Recupero debito quarto anno Terzo incontro.
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
26/10/2004Laboratorio di Programmazione - Luca Tesei1 Variabili e Oggetti Lo spazio di memoria di Java Le API di Java.
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
Massa Laura Mela Enrica
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Le gerarchie di tipi.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Fondamenti di Informatica
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Introduzione al linguaggio Java
Specifiche senza JML: uso delle asserzioni. 2 Asserzioni in Java Dal jdk 1.4 (da Febbraio 2002) cè meccanismo per gestire asserzioni Asserzione: espressione.
1 Lezione XIII Lu 17-Nov-2005 Programmare le classi.
Derivazione tra classi
Overriding.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Oggetti e dati primitivi
Approfondimento delle classi
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
1 Le gerarchie di tipi. 2 Supertipi e sottotipi 4 un supertipo –class –interface 4 può avere più sottotipi –un sottotipo extends il supertipo ( class.
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Il Linguaggio C.
Java base IV: Java e la programmazione O.O.
Argomenti della lezione
LA DOCUMENTAZIONE È noto che un buon programma dovrebbe essere ben documentato.. ma lesperienza insegna che quasi mai ciò viene fatto! –non cè tempo, ci.
Programmazione in Java
AlgoLab - Ereditarieta' Ereditarietà e polimorfismo in Java Laboratorio di Algoritmi 02/03 Prof. Ugo de Liguoro.
Javascript: fondamenti, concetti, modello a oggetti
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.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Java come linguaggio di programmazione
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
1 Applet ed HTML Fondamenti di Informatica Corso D.
I nomi in Java F. Bombi 18 novembre novembre 2003.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Lezioni 1-2.
Una "vera" classe.. ..un esempio pratico: la calcolatrice
Programmazione ad oggetti
1 novembre I nomi in Java F. Bombi 1 novembre 2002.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 7 Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi.
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.
Gestione dei thread in Java
Programmazione in Java
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Progettare una classe 21 Febbraio La classe BankAccount Vogliamo realizzare una classe i cui oggetti sono dei semplici conti bancari. * Identifichiamo.
Corso di Algoritmi e Strutture Dati con Laboratorio Richiami di Java – parte II.
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

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 protocolli di comunicazione standard in modo da poter scambiare posta elettronica scaricare dati e software (freeware o shareware) partecipare a newsgroups ricercare informazioni navigando in maniera ipertestuale nel World Wide Web

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 2 HTML e i browsers WWW HTML (HyperText Markup Language): linguaggio per la creazione di documenti di testo formattato, grafica, tabelle, immagini, con links ad altri documenti dello stesso tipo Un browser web come Mosaic o Netscape consente di accedere ai documenti ipertestuali tramite uninterfaccia grafica, gestendo in maniera trasparente la comunicazione con altri computer sulla rete (siti web) I documenti web scritti in HTML possono includere applicazioni chiamate Applet, che i browser consentono di scaricare ed eseguire localmente

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 3 JAVA e Internet PROBLEMI DELLE APPLICAZIONI PER INTERNET: SICUREZZA: prevenire accessi non autorizzati e assicurare lintegrità dei dati LINGUAGGI PER INTERNET: applicazioni scritte in C, Pascal etc. sono costrette a gestire manualmente i protocolli di comunicazione INTERATTIVITA: i linguaggi tradizionali non sono concepiti per gestire applicazioni interattive in cui lutente comunica attraverso elementi grafici PORTABILITA: il funzionamento delle applicazioni interattive è di solito basato sullambiente run-time dello specifico sistema operativo

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 4 Hello World in JAVA In JAVA è possibile scrivere 3 tipi di applicazioni: applicazioni stand-alone, applet, e servlet Lunità fondamentale per costruire programmi JAVA è la classe, da cui si possono creare oggetti come istanze della classe Una classe contiene essenzialmente campi, che rappresentano lo stato dello oggetto, e metodi, che sono sequenze di istruzioni che operano sullo stato Class HelloWorld { public static void main (String[ ] args) { System.out.println(Hello, world); }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 5 Hello World in JAVA Come eseguire il programma hello world scritto in JAVA: - Scrivere il file sorgente HelloWorld.java con un qualsiasi editore di testo - Compilare il programma in bytecode con il comando: javac HelloWorld.java -Eseguire il bytecode sulla macchina virtuale JAVA con il comando: java HelloWorld.class

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 6 Variabili, tipi primitivi, aritmetica di base Class Fibonacci { /** Stampa la sequenza di Fibonacci per valori < 50 */ public static void main (String[ ] args) { int lo = 1; int hi = 1; System.out.println(lo); while (hi < 50) { System.out.println(lo); hi = lo + hi; lo = hi - lo; } notare overloading

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 7 I tipi primitivi predefiniti in JAVA boolean valori di verità true e false char caratteri Unicode a 16 bit byte interi a 8 bit con segno short interi a 16 bit con segno int interi a 32 bit con segno long interi a 64 bit con segno float floating-point a 32 bit (IEEE ) double floating-point a 64 bit (IEEE )

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 8 Costanti con nome Class Cerchio { static final double = ; } Dare un nome a una costante ha due vantaggi: Il nome della costante è una forma di documentazione La costante è definita in un unico posto nel codice, e modificarne il valore è molto facile, senza rischio di inconsistenza

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 9 Classi e oggetti Class Point { public double x, y; } Tutto il codice che ha accesso alla classe Point può accedere ai campi x e y direttamente.

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 10 Classi e oggetti Gli oggetti sono creati col meccanismo dellistanziazione, e laccesso ad essi avviene tramite riferimenti (analogia con le strutture a puntatori). Point angoloBasso = new Point(); Point angoloAlto = new Point(); Point medio = new Point(); angoloBasso.x = 0.0; angoloAlto.x = 5.2; medio.x = (angoloBasso.x + angoloAlto.x) / 2;

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 11 Campi statici (o di classe) Class Point { public static Point origine = new Point (); public double x, y; } Il codice che ha accesso alla classe Point può accedere alloggetto origine con il riferimento Point.origine. Esiste un unico oggetto Point.origine indipendentemente da quante istanze di Point vengono create.

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 12 Il Garbage Collector Le istanze vengono create con new, che consente di invocare un costruttore di una data classe. Daltra parte, non esiste in JAVA la nozione di distruttore né lanalogo della istruzione free di C. Per liberarsi di un oggetto non più in uso, basta eliminare ogni riferimento ad esso. Il garbage collector si occupa di recuperare automaticamente lo spazio di memoria occupato dagli oggetti non più in uso, cioè quelli non più referenziati.

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 13 Metodi e parametri Class Point { public static Point origine = new Point (); public double x, y; public void clear () { x = 0; y = 0; ) } I metodi hanno zero o più parametri. Il nome del metodo, il numero e il tipo dei suoi parametri, il tipo del valore restituito, costituiscono la signature (firma) del metodo, che assieme alla sua semantica sono tutto cò che bisogna conoscere per usare il metodo stesso. OVERLOADING: moltecipli signature dello stesso metodo sono ammesse

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 14 La referenza this La referenza this è lequivalente in JAVA della variabile speciale self Class Point { public static Point origine = new Point (); public double x, y; public void clear () { x = 0; y = 0; } public void move (double x, double y) { this.x = x; this.y = y; }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 15 Metodi statici Metodi la cui esecuzione prescinde da qualunque istanza della classe esempio: il metodo main() di una classe Metodi che accedono o modificano i campi statici della classe Class ContoCorrente { public static int ultimo_usato = 0; public int num_conto; public int saldo; public String titolare; public static int nuovoNumero() { ultimo_usato++; return ultimo_usato; } public ContoCorrente (int sal, String tit) { saldo = sal; titolare = tit; num_conto = nuovoNumero(); }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 16 Ereditarietà: estendere una classe Class Pixel extends Point { public Color colore; public void clear() { super.clear(); colore = null; } Un oggetto di tipo Pixel è un Point, quindi ovunque è previsto un riferimento a Point va bene anche un Pixel. Tutto il codice scritto per Point funziona anche su Pixel POLIMORFISMO

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 17 La classe Object Una classe che non ne estende esplicitamente nessuna altra, estende implicitamente la classe predefinita Object, che di conseguenza è la radice di qualunque gerarchia di classi. Grazie al polimorfismo, tutti gli oggetti appartengono alla classe Object Object è pertanto un tipo generico di riferimenti che possono puntare a oggetti di qualsiasi classe Object gen_rif = new Pixel(); gen_rif = Questa invece è una stringa;

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 18 Le Interfacce Una interfaccia contiene la dichiarazione di un insieme di metodi, come una classe, ma non ne contiene la realizzazione Linterfaccia definisce solo il contratto dei metodi, stabilendone la forma ed il comportamento, ma non i dettagli dellimplementazione interface Lookup { /** Restituisce il valore associato al nome, * oppure null se il nome non è presente */ Object find(String nome); }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 19 Le Interfacce (continua 1) Ora è possibile scrivere codice che fa riferimento ad oggetti di tipo Lookup e al metodo find, e rimandare a un secondo tempo la loro implementazione void processValues (String[ ] nomi, Lookup table) { for (int i = 0; i < nomi.length; i++) { Object valore = table.find(nomi[i]); if (valore != null) elabora(nomi[i], valore); }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 20 Le Interfacce (continua 2) Implementazione di Lookup class SimpleLookup implements Lookup { private String[ ] Nomi; private Object[ ] Valori; Object find(String nome) { for (int i = 0; i < Nomi.length; i++) { if (Nomi[i].equals(nome)) return Valori[i]; } return null; } // altri metodi per inserire/togliere elementi }

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 21 Le Interfacce (continua 3) Ovviamente per poter utilizzare il metodo processValues() è necessario passargli un argomento di tipo Lookup, ma da una interfaccia non si possono creare istanze. Fortunatamente, grazie al polimorfismo, possiamo creare unistanza di SimpleLookup ed usarla al posto dove è richiesto un Lookup ……… Lookup tabella = new SimpleLookup(); processValues(elenco, tabella); ……