Stringhe in JAVA #4 Telematica II 4. Packages in JAVA Corso di Laurea in Ingegneria Informatica A.A. 2009-2010 2° Semestre Prof. Giovanni Pascoschi 2 Stringhe in JAVA #5 3 Telematica II – A.A. 2009-2010 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni Stringhe in JAVA #6 a cura di Pascoschi Giovanni 4 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni Stringhe in JAVA #7 Argomenti da riga di comando #1 per passare ad un programma dei parametri, è possibile utilizzare un array di stringhe nel metodo main (attenzione che sono stringhe) public class Primo { public static void main(String args[ ]) { for(int i=0; i<args.length; i++) { System.out.println(“args[“ + i + “]:” + args[i]); }; }; } 5 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni 6 Argomenti da riga di comando #2 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni Package in JAVA #1 Il package è una collezione di classi correlate /* sum and average command lines */ class SumAverage { public static void main (String args[ ]) { int sum = 0; float avg = 0; for (int i = 0; i < args.length; i++) { sum += Integer.parseInt(args[i]); } System.out.println("Sum is: " + sum); System.out.println("Average is: " + (float)sum / args.length); } } 7 Telematica II – A.A. 2009-2010 I principali benefici derivanti dall’uso di packages sono: ¾ riutilizzo del codice ¾ garantiscono l’univocità del nome di una classe (ad esempio una mia classe list la posso inserire in un determinato package senza preoccuparmi se esiste lo stesso nome della classe in un altro package) ¾ con il JDK vengono forniti una serie di packages per le funzionalità piu’ comuni:I/O, grafica, networking, suono, ecc per definire un package: package myclasses; class A {...}; class B {...}; per usare un package: a cura di Pascoschi Giovanni 8 import myclasses.A; // importa solo la classe A import myclasses.*; // importa sia A che B Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni Package in JAVA #2 Package in JAVA #3 package myclasses; class A {...}; I packages si riflettono in una struttura di directories package myclasses; class B {...}; myclasses package myclasses.veryUsefulClasses; class C {...}; import myclasses.*; A.class B.class veryUsefulClasses // NON importa C Come conviene definire il nome univoco per i packages? per esempio basandosi sul nome internet (es.: it.poliba.info.mypackage) 9 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni C.class 10 Package in JAVA #4 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni Package in JAVA #5 nella dichiarazione di attributi o di classi, se non viene specificato nè public nè private, la visibilità è da intendersi livello di package per creare un package è sufficiente inserire una dichiarazione prima del sorgente package it.poliba.info.prova package nomepackage; class Prova { int sum = 0; } se non si inserisce il nome del package, viene usato il package “predefinito” (valido per piccoli programmi) compilare con: in questo caso la classe Prova ed il suo attributo sono visibili solo dalle altre classi dello stesso package javac –d . Time1.java Æ dice al compilatore di creare le directory specificate nel nome del package a partire da quello corrente. 11 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni 12 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni Package in JAVA #6 Libreria standard in JAVA il compilatore JAVA cerca le classi da linkare prima in quelle standard fornite insieme al JDK, poi nella directory ext di tale SDK, ed infine nei percorsi specificati tramite la variabile d’ambiente CLASSPATH i principali package JAVA che costituiscono la libreria standard sono: per default la variabile CLASSPATH contiene solo la directory corrente. Se si devono aggiungere package contenuti in altre directory, si deve aggiungere il percorso a tale variabile d’ambiente: java.awt Æ classi per realizzare interfacce grafiche (p.e. button) java.io Æclassi per realizzare input/output java.net Æ classi per realizzare connessioni (p.e. Socket) CLASSPATH=c:\mypackages; java.applet Æ classe Applet per realizzare applet java.util Æ classi di utilità (p.e. Date) java.lang Æ classi nucleo di JAVA (p.e. System e String) 13 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni 14 Libreria delle operazioni matematiche Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni Documentazione della libreria standard in JAVA per accedere alla documentazione della libreria standard bisogna aprire il file index.html nella cartella API della cartella Docs del JDK, dopo aver scaricato la documentazione della JDK (rif. lezione laboratorio successiva) java.lang.Math indica la classe Math contenuta nel package java.lang che viene importato automaticamente in ogni programma la documentazione dell’API Application Programming Interface è in formato html Math E PI abs(-) sin(double) cos(double) exp(double) pow(double,double) sqrt(double) round(double) random 15 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni 16 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni Riepilogo della lezione Fine della lezione JAVA e OOP Classi String e Math Argomenti da riga di comando Libreria standard / Package in JAVA 17 Telematica II – A.A. 2009-2010 Domande? a cura di Pascoschi Giovanni 18 Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni