• Non ci sono risultati.

Programmazione: Paradigmi di Programmazione

N/A
N/A
Protected

Academic year: 2022

Condividi "Programmazione: Paradigmi di Programmazione"

Copied!
3
0
0

Testo completo

(1)

1

Matteo Baldoni

Dipartimento di Informatica - Universita` degli Studi di Torino C.so Svizzera, 185 - I-10149 Torino (Italy) e-mail: [email protected] - URL: http://www.di.unito.it/~baldoni

Linguaggi di

Programmazione: Paradigmi di Programmazione

I PACKAGE IN JAVA

Linguaggi di Programmazione: Paradigmi di Programmazione 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

Linguaggi di Programmazione: Paradigmi di Programmazione 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

Linguaggi di Programmazione: Paradigmi di Programmazione 4

Package

java

awt util

...

public

package

classi interfacce

event

Linguaggi di Programmazione: Paradigmi di Programmazione 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?

Linguaggi di Programmazione: Paradigmi di Programmazione 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

Linguaggi di Programmazione: Paradigmi di Programmazione 7

Un esempio

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

Linguaggi di Programmazione: Paradigmi di Programmazione 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;

Linguaggi di Programmazione: Paradigmi di Programmazione 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

Linguaggi di Programmazione: Paradigmi di Programmazione 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 { […]

}

Linguaggi di Programmazione: Paradigmi di Programmazione 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

Linguaggi di Programmazione: Paradigmi di Programmazione 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:¥MWT¥GiornoII¥esempi¥esempiPackage

– javac -classpath .;C:¥MWT¥GiornoII¥esempi¥esempiPackage – java -classpath .;C:¥MWT¥GiornoII¥esempi¥esempiPackage

temporaneamente in modo definitivo (nel file autoexec.bat)

(3)

3

Linguaggi di Programmazione: Paradigmi di Programmazione 13

Classpath:

lo spazio dei nomi

import javamio.util.*;

import corso.*;

class ProvaClassPath { A a = new A();

}

javac -classpath

.;C:¥MWT¥GiornoII¥esempi¥pr ovaclasspath¥directory1;C:¥

MWT¥GiornoII¥esempi¥provacl asspath¥directory2 ProvaClassPath.java

Linguaggi di Programmazione: Paradigmi di Programmazione 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

Riferimenti

Documenti correlati

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

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

■ 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

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

[r]

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,

Tuttavia, da un altro punto di vista, il fatto di avere un robot  che  vive  in  un  ambiente  rappresenta  un  contributo  notevole  al  concetto  di