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