Linguaggi di Programmazione: Paradigmi di Programmazione

Похожие документы
OO puro. Primi concetti di Java. Tipi primitivi. Ogni cosa è un oggetto. Java è object-oriented puro Non come il C+ + (OO ibrido) Lorenzo Bettini

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali

Il linguaggio Java. Concetti base. I packages

Cosa è importante: pom.xml Goal Plug-in Repository

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

Paradigmi della PO. Incapsulamento. Ereditarietà. Polimorfismo. Software per TLC - AA 2008/2009 1

Ingegneria del Software 1: Eclipse

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Laboratorio di Informatica 4 Novembre 2005

Corso di Linguaggi di Programmazione

Funzioni, Stack e Visibilità delle Variabili in C

Programmazione in Linguaggio C++

Installazione dell SDK sotto Windows

Le basi del linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Modulo 2: Strutture fondamentali della programmazione Java

ereditarietà e polimorfismo

Linguaggi di Programmazione

Versione 3.0. a cura di Claudia Cavicchi Biblioteca Clinica F.Bianchi Università di Bologna

Транскрипт:

Linguaggi di Programmazione: Paradigmi di Programmazione I PACKAGE IN JAVA Matteo Baldoni Dipartimento di Informatica - Universita` degli Studi di Torino C.so Svizzera, 185 - I-10149 Torino (Italy) e-mail: baldoni@di.unito.it - URL: http://www.di.unito.it/~baldoni 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 I package di Java 2 1

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 I package di Java 3 Package java public classi interfacce util package awt event... I package di Java 4 2

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? I package di Java 5 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 {... } prima istruzione! nomedelpackage. nomedellaclasse I package di Java 6 3

Voglio definire un package di nome geometria contenente a sua volta due package di nome poligoni e prismi Un esempio I package di Java 7 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; I package di Java 8 4

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 I package di Java 9 Package, javac e java package geometria.poligoni; public class Rettangolo { [ ] } Nel diretorio esempipackage: Per la compilazione javac geometria poligoni Rettangolo.java Per l esecuzione java geometria.poligoni.rettangolo I package di Java 10 5

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 il nome della classe Poligono nel package geometria.poligoni Importo tutti i nomi del package geometria.poligoni I package di Java 11 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 in modo definitivo (nel file autoexec.bat) SET CLASSPATH=.;C: esempi esempipackage javac -classpath.;c: esempi esempipackage java -classpath.;c: esempi esempipackage temporaneamente I package di Java 12 6

Classpath: lo spazio dei nomi javac -classpath.;c: esempi provaclasspath directory1; C: esempi provaclasspath directory2 ProvaClassPath.java import javamio.util.*; import corso.*; class ProvaClassPath { A a = new A(); } I package di Java 13 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 I package di Java 14 7