• Non ci sono risultati.

Package e documentazione Programmazione in Rete e Laboratorio

N/A
N/A
Protected

Academic year: 2021

Condividi "Package e documentazione Programmazione in Rete e Laboratorio"

Copied!
3
0
0

Testo completo

(1)

1

Package e

documentazione

Programmazione in Rete e Laboratorio

Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it

http://www.di.unito.it/~baldoni/didattica

2

Cos’e` un package?

Perche` usiamo le cartelle (direttori, folder) sul nostro desktop?

Perche` desideriamo tenere insieme i file che hanno uno stesso scopo o utilita`

Per ritrovare i file con maggiore facilita` in un momento successivo

Per archiviare i file piu` facilmente e passarli a qualcun’altro

Per garantire l’unicita` ai nomi dei file

Spesso un direttorio e` strutturato in sottodirettori Un package e` una cartella di classi Java

3

Package

La cartella dove sviluppiamo un applicativo Java e` un package, il package di default di Java

I package possono essere strutturati in sottopackage come le cartelle

Possono essere archiviati in file compressi (JAR file)

Definiscono spazi dei nomi separati per garantire unicita`

agli identificatori da noi utilizzati

Le librerie di Java sono tutte organizzate in package e sottopackage

4

Package

java

awt util

...

public

package

classi interfacce

event

5

Package

Come fare della nostra semplice cartella di classi un vero e proprio package?

Come utilizzare un package all’interno di un file e quindi rendere disponibili le utilita` in esso definite?

6

L’istruzione package

Posso definire che un certo file che contiene una certa classe pubblica e un certo numero di altre classi (non pubbliche!) fa parte di un certo package mediante la parola chiave package

package nomedelpackage ; class nomedellaclasse { . . . }

nomedelpackage . nomedellaclasse prima istruzione!

(2)

2

7

Un esempio

Voglio definire un package di nome geometria contenente a sua volta due package di nome poligoni e prismi

8

Dichiarazione di un package

In ogni file .java del sottodirettorio poligoni di geometria aggiungero` come prima istruzione

package geometria.poligoni;

In ogni file .java del sottodirettorio prismi di geometria aggiungero`

come prima istruzione

package geometria.prismi;

9

Effetto

Effetto della precedente dichiarazione sara` quella di associare alla classe Poligono e Prisma il nome di

geometria.poligoni.Poligono

geometria.prismi.Prisma

Questi sono i veri nomi delle classi ed e` cosi` che andranno identificate

Organizzazione e nomi simile a quella dei file nei direttori

10

Package, javac e java

Nel diretorio esempiPackage:

Per la compilazione

javac geometria\poligoni\Rettangolo.java

Per l’esecuzione

java geometria.poligoni.Rettangolo package geometria.poligoni;

public class Rettangolo { […]

}

11

L’istruzione import

Scrivere i nomi delle classi e` diventato meno agevole e sicuramente piu` tedioso

L’istruzione import permette di semplificare la scrittura dei nomi delle classi in package

include in C/C++ vs import in Java

import geometria.poligoni.Rettangolo;

import geometria.poligoni.*;

Importo tutti i nomi del package geometria.poligoni

Importo il nome della classe Poligono nel package geometria.poligoni

12

CLASSPATH:

lo spazio dei nomi

Dove andare a cercare i vari package e classi?

Come rendere accessibili i miei package da un direttorio qualsiasi?

Java fa uso (sia in compilazione che in esecuzione) della variabile di ambiente CLASSPATH

SET CLASSPATH=.;C:\esempi\esempiPackage

javac -classpath .;C:\esempi\esempiPackage

java -classpath .;C:\esempi\esempiPackage temporaneamente in modo definitivo (nel file autoexec.bat)

(3)

3

13

Classpath:

lo spazio dei nomi

import javamio.util.*;

import corso.*;

class ProvaClassPath { A a = new A();

}

javac -classpath .;C:\esempi\provaclasspath\directory1;

C:\esempi\provaclasspath\directory2 ProvaClassPath.java

14

Visibilità dei membri delle classi

Ad ogni membro di una classe può essere associata una delle parole chiave:

nessuna visibile da tutte le classi nello stesso package

public visibile da tutti (parte dell'interfaccia dell'oggetto)

private visibile solo dalla classe stessa

protected visibile da tutte le sottoclassi

15

Documentazione automatica

javadoc permette di generare automaticamente file di documentazione analizzando i commenti compresi tra i simboli /** e */

Produce documentazione in formato HTML

La documentazione di Java sulle API e` generata con tale utility

package, classe pubblica, interfaccia pubblica, metodo pubblico o protetto, variabile pubblica o protetta

16

Un Esempio

package geometria.prismi;

import geometria.poligoni.*;

/**

Classe che definisce un <i>prisma</i>.

Un prisma ha come base un poligono ed una altezza (double).

@author Matteo Baldoni

@version 1.0 1 settembre 2000

@see <a href="http://www.di.unito.it/~baldoni/didattica/">

Matteo Baldoni's Home page</a>

@see geometria.poligoni.Poligono#Poligono

*/

public class Prisma { […]

}

Commenti per il package (si puo` aggiungere un file di nome package.html)

17

Un esempio

/** Costruttore, un prisma e` costruito mediante un poligono (Poligono) e una altezza (double).

@param b base del prisma

@param h altezza del prisma

@return un oggetto di tipo Prisma

@throw non definito

*/

public Prisma(Poligono b, double h){

base = b;

altezza = h;

}

/** Base del poligono.

*/

protected Poligono base;

/** Altezza del prisma.

*/

protected double altezza;

Commenti per i metodi

Commenti per le variabili

18

Estrazione dei commenti

javadoc nomeDelPackage

javadoc -d docDirectory nomeDelPackage

javadoc -d docDirectory nomeDelPackage1 nomeDelPackage2 …

javadoc -d docDirectory -author -version nomeDelPackage1 nomeDelPackage2 …

javadoc -help per avere l’elenco di tutte le opzioni

javadoc sottosta` alle stesse regole di javac e java per quanto riguarda il classpath

Riferimenti

Documenti correlati

MICROECONOMIA -- Prova intermedia del 12.1.16 DOCENTE: ZAPPIA Tempo a disposizione: 50 minuti - Per le risposte alle domande di tipo A (aperte) utilizzare unicamente lo spazio

3. Impiego tale somma M in una banca che si impegna a restituirmi un certo importo fra 2 anni ed un secondo importo triplo del primo fra 7 anni. Tale banca applica un tasso

 In Java il tipo base degli array può essere qualunque, sia primitivo sia riferimento.  Sono possibili “array

In un certo anno non bisestile che inizia con un lunedi’, si ripete un certo evento a partire dal primo mercoledi’ con cadenza regolare ogni dieci giorni.. Quante volte questo

o Java contiene molte classi predefinite che sono raggruppate in categorie di classi e prendono il nome di package. o l’insieme di questi package è chiamato Java API (Java

Thus, the elements of any collection class can be accessed through the methods defined by Iterator, with similar cycles for different data structures, e.g.. sets

In questo caso la situazione è diversa, perché lo stiamo dimostrando sulle onde piane della base di Fourier, e non direttamente sulle funzioni d’onda; qui usiamo solo le ipotesi

The aim of this research is to propose a methodological system to design public spaces in the cities able to orient, inform, communicate, entertain, interact,