5 - I package di base in Java



Documenti analoghi
15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Input/Output in Java

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

20 - Input/Output su File

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A

Scope e visibilità per classi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Programmazione ad Oggetti. Java Parte I

Libreria standard JAVA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Il linguaggio Java. Concetti base. I packages

Come trattare il risultato di un comando SQL (relazioni) che

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Architettura Client-Server

I metodi statici -1. Variabili statiche Vogliamo assegnare a ciascuncontoun numeroidentificativo diverso. I metodi statici -2

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39

La velocità di una carovana

Corso di Informatica

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

Esempio su strutture dati dinamiche: ArrayList

Synchronized (ancora)

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

TIPI PRIMITIVI E CLASSI WRAPPER

Non si deve fare ALCUN riferimento alla parte specifica di JDBC.

Esercitazione su JDBC

Parte II: Reti di calcolatori Lezione 10

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Esercitazione. Programmazione Object Oriented in Java

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

Corso sul linguaggio Java

Programmazione ad oggetti

Introduzione JDBC interfaccia java.sql driver caricare i driver

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

Java Virtual Machine

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

JDBC. A. Bechini Accesso a DataD con Java

Pila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

Operazioni di scrittura e lettura con periferici in linguaggio Java

Inizializzazione, Assegnamento e Distruzione di Classi

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

esercizi Esercizi / problemi

JAVA INTRODUZIONE C++ JDK e JRE API IDE (BLUEJ) JAVA Introduzione. Versioni e IDE DIAPOSITIVA 2 ALESSANDRO URSOMANDO

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

GESTIONE DEI PROCESSI

Telematica II 17. Esercitazione/Laboratorio 6

INTRODUZIONE INTRODUZIONE JAVA JAVA

Flussi, lettori e scrittori

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Struttura di un programma Java

Unità B3 Strutture di controllo

JDBC versione base. Le classi/interfacce principali di JDBC

INDICE. Indice. Introduzione

Java: la libreria delle classi

3. La sintassi di Java

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

Gestione delle Eccezioni

Esercizi della lezione 5 di Java

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

Parola chiave extends

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Corso di Informatica Modulo T3 B2 - Database in rete

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Oggetti Lezione 3. aspetti generali e definizione di classi I

Le variabili. Olga Scotti

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Introduzione alla programmazione in C

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Caricamento della classe driver. Apertura della connessione. DriverManager.getConnection() Creazione di uno statement

Lezione 9. Applicazioni tradizionali

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Architettura MVC-2: i JavaBeans

Eclipse. Avviare un progetto e compilare un semplice programma

DATI IDENTIFICATIVI DEL PROGETTO

Concetto di Funzione e Procedura METODI in Java

Java Classi wrapper e classi di servizio. Classi di servizio

I puntatori e l allocazione dinamica di memoria

UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124

10.7 La classe BitSet Esercizi di autovalutazione Risposte agli esercizi di autovalutazione Esercizi 559

Programmazione a Oggetti Lezione 10. Ereditarieta

Gestione delle eccezioni in Java

Transcript:

5 - I package di base in Java Vittorio Scarano Algoritmi e Strutture Dati: Algoritmi Distribuiti Università degli Studi di Salerno Organizzazione della lezione Obiettivo: Presentare gli strumenti di base offerti da Java tramite i package Panoramica sui package Il package del linguaggio: java.lang Il package delle utilità: java.util Il package di input/output: java.io 2 1

I package di Java Il riutilizzo del codice è un vantaggio della OOP la creazione di classi da cui derivare classi permette di risparmiare risorse Java fornisce una quantità di classi raggruppate in package standard che forniscono gruppi di classi correlate interface definizione di eccezioni ed errori costanti 3 I 10 package standard di Java java.lang il package del linguaggio java.util il package delle utilità java.io il package dell'input/output java.net il package per la rete java.awt Abstract Windows Toolkit java.text il package del testo java.security il package della sicurezza java.rmi Remote Method Invocation java.lang.reflect il package della riflessione java.sql il package per applicazioni SQL 4 2

Il package java.lang Il nucleo del linguaggio Java Contiene, tra l'altro Object classi wrapper per tipi primitivi Math String System Thread 5 Il package java.util Utilità per il programmatore Contiene, tra l'altro Date Classi per strutture dati (Hashtable, Vector, Stack, Enumeration ) Random StringTokenizer 6 3

Il package java.io Supporto a operazioni di I/O su diversi dispositivi Contiene, tra l'altro Classi del flusso di output Classi del flusso di input Classi per accesso ai file StreamTokenizer 7 Il package java.net Supporto a operazioni su rete Contiene, tra l'altro, Supporto per Uniform Resource Locator socket TCP indirizzi IP per socket UDP La classe ContentHandler 8 4

Il package java.awt Supporta funzionalità grafiche di Abstract Window Toolkit Contiene, tra l'altro, Classi grafiche Classi dei gestori di Layout Classi per i Font Classi delle dimensioni Classe MediaTracker 9 Il package java.text Supporta la internazionalizzazione del testo Meccanismo di base per assegnare il testo in base alle preferenze nazionali o al linguaggio Contiene, tra l'altro, Classi di formattazione NumberFormat, DateFormat, MessageFormat Classe Collator confronto tra stringhe espresse con nazionalizzazioni diverse 10 5

Il package java.security Supporta funzionalità per incorporare sicurezza nelle applicazioni Java Incorpora DSA (1.1) ma è progettato per essere ampliata Contiene, tra l'altro, Classi per le firme digitali Classe MessageDigest (MD5) Classi per la gestione delle chiavi 11 Il package java.rmi RMI = Remote Method Invocation Supporta le funzionalità per la programmazione OO in ambito distribuito Applicazioni distribuite con chiamate di metodi di oggetti remoti 12 6

Il package java.lang.reflect Tecnicamente fa parte di java.lang Permette al codice di esaminare e trovare informazioni sulla struttura delle classi a run-time Informazioni su: campi metodi costruttori 13 Il package java.sql Fornisce le funzionalità per scrivere applicazioni di database in grado di eseguire query SQL su un DBMS JDBC = Java Data Base Connectivity Contiene, tra l'altro, Classe DriverManager (per driver JDBC) Interface Connection Interface Statement e ResultSet 14 7

java.lang: La classe Object Classe superclasse di tutte le altre classi Tutti gli oggetti ereditano da Object, tra l'altro: il metodo clone() Circle c1= new Circle (); Circle c2 = c1.clone(); il metodo hashcode() restituisce un codice hash univoco per ogni oggetto il metodo equals() (solo per oggetti in una HashTable) il metodo tostring() 15 java.lang: le classi wrapper Forniscono classi per i tipi di dato primitivi Permettono di integrare i tipi di dati primitivi nell'uso di altre classi Classi wrapper (involucro): Boolean Byte Short Character Integer Long Float Double Void 16 8

java.lang: la classe wrapper Byte Alcuni metodi: static int parsebyte (String s) static int parsebyte (String s, int radice) short shortvalue() long longvalue().. double doublevalue() 17 java.lang: la classe wrapper Character Alcuni metodi: static boolean islowercase(char ch) static boolean isuppercase(char ch) static boolean isspace(char ch) static char tolowercase(char ch) static char touppercase(char ch) static int digit(char ch) // converte '9' in 9 static char fordigit(int i) // converte 9 in '9' 18 9

java.lang: la classe wrapper Integer Alcuni metodi: static int parseint (String s) short shortvalue() long longvalue() float floatvalue() double doublevalue() byte bytevalue() Costanti: MIN_VALUE, MAX_VALUE 19 java.lang: la classe Math Definisce funzioni matematiche e costanti Dichiarata final Offre metodi per: funzioni trigonometriche funzioni logaritmiche arrotondamenti, generazione numeri random min, max, valori assoluto 20 10

java.lang: la classe String Definisce stringa di caratteri non modificabile Alcuni metodi: int length() char charat(int index) boolean startswith(string s) String substring (int inizio) boolean equals (Object a) boolean equalsignorecase (String s) int compareto (String s) String tolowercase (String s) static String valueof (int i) 21 java.lang: la classe StringBuffer Definisce stringa di caratteri modificabile Alcuni metodi (molti simili a String): int length().. synchronized char charat(int index) synchronized void setcharat (int index, char ch) synchronized StringBuffer insert (int offset, Object o) String tostring() 22 11

java.lang: la classe System Permette l'accesso al sistema Alcuni metodi: static long currenttimemillis() static Properties getproperties() static void gc() Variabili membro: InputStream in PrintStream out PrintStream err 23 java.lang: la classe Runtime Permette l'accesso alle risorse della Java VM Alcuni metodi: static Runtime getruntime() long freememory() long totalmemory() static void gc() 24 12

java.lang: la classe Class Permette l'accesso alle informazioni di una classe Alcuni metodi: static Class forname(string nomeclasse) String getname() Class getsuperclass() ClassLoader getclassloader() boolean isinterface() String tostring() Ampliata con java.lang.reflect 25 Il package java.util Implementa utilities per il programmatore Classi importanti: BitSet Calendar Date Dictionary GregorianCalendar Hashtable Properties Random SimpleTimeZone TimeZone Stack StringTokenizer Vector Interface Enumeration Observer 26 13

java.util: la interface Enumeration Specifica metodi per enumerare un elenco Un oggetto di una classe che implementa Enumeration Vector v = new Vector(10);... for (Enumeration e = v.elements(); e.hasmoreelements();) System.out.print(e.nextElement() + " "); L'oggetto Enumeration si consuma nell'utilizzo L'implementazione è a carico della classe 27 java.util: la classe Vector Implementa un elenco di oggetti allocato dinamicamente Allocazione in blocchi di x elementi (per efficienza) capacità = spazio allocato dimensioni = elementi allocati Costruttori: Vector () Vector (int dim) Vector(int dim, int inc) Metodi: addelement (Object) elementat (int indice) 28 14

java.util: la classe StringTokenizer Permette di suddividere una stringa in tokens, delimitate da spazi (per default) o da qualsiasi altro testo Alcuni costruttori: StringTokenizer(String s) StringTokenizer(String s, String del) Metodi: counttokens () hasmoretokens () nexttoken() 29 Un esempio di uso delle due Classi Costruire una semplice shell di comandi che permetta di comprendere comandi del tipo: add alfa beta gamma print help quit Il numero di parametri su add è variabile L'aggiunta va fatta in un oggetto ListaNomi 30 15

La classe ListaNomi package interprete; import java.util.*; public class ListaNomi{ private Vector nomi = new Vector(3); } public void addnome (String nome) { nomi.addelement(nome); } public void printnomi () { Enumeration e = nomi.elements(); while (e.hasmoreelements()) System.out.println (e.nextelement()); } Package Dati interni: classe Vector Metodo addnome() Metodo printnomi() 31 La classe Shell package interprete; Creazione di uno Stream Buffered import java.util.*; import java.io.*; da System.in public class Shell { public static void main (String argv[]) throws IOException { ListaNomi lista = new ListaNomi(); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); for (;;) { System.out.print("Comandi >"); Creazione di un Vettore di String cmd = in.readline(); StringTokenizer st = new StringTokenizer (cmd); Tokens generati da Vector tokens = new Vector(10); StringTokenizer while (st.hasmoreelements()) tokens.addelement(st.nexttoken()); // Un semplice Parser if (tokens.elementat(0).equals ("quit")) break; else if (tokens.elementat(0).equals ("help")) Parser Comandi System.out.println ("Uso: \"add A B c\",\"print\", \"quit\""); else if (tokens.elementat(0).equals ("add")) { Enumeration e = tokens.elements(); e.nextelement(); //scarto il comando while (e.hasmoreelements()) lista.addnome((string) e.nextelement()); } else if (tokens.elementat(0).equals ("print")) lista.printnomi(); else System.out.println ("uuhh? Non capisco!"); } } } 32 16