Ceazione di una mia Libreria

 

 

 

Questo progetto è stato creato allo scopo di realizzare una semplice libreria.

Il nome del progetto è "MiaLib" l'unico package che ha invece si chiama "mia.lib", quindi nome progetto e package sono diversi. Di solito quando si crea un progetto e gli si attribuisce un nome, il compilatore crea anche un package dandogli lo stesso nome del progetto ma per convenzione lo riporta tutto in minuscolo. Se abbiamo impostato "Create Main Class" creerà un file di nome "MiaLib.java". Anche qui abbiamo un'anomalia il file che vediamo invece ha un nome diverso si chiama "ScriviNome" e se osserviamo il codice noteremo che c'è una sola classe che però non contiene il metodo main, quindi non sarà eseguibile.

Per creare un progettto di questo tipo vedere qui.

 

Classe: ScriviNome

 1 package mia.lib;
 2 
 3 public class ScriviNome {
 4     private final String nome;
 5 
 6     public ScriviNome(String nome) {
 7         this.nome = nome;
 8     }
 9 
10     public void stampaNome() {
11         System.out.println("Il tuo nome è: " + nome);
12     }
13 }

 

 

Alla fine del processo avremo a disposizione una libreria MiaLib.jar che per l'appunto è un file jar ma che in questo caso non è eseguibile. Al suo interno abbiamo una sola classe ScriviNome con package mia.lib.

Ora vedremo come poterla utilizzare in un'altro progetto.

 

Creiamo un nuovo progetto e chiamiamolo ScriviDaLib con spunta su create main class verrà creato un codice automatico. Sovrascriviamo questo codice con il seguente:

 

Classe: ScriviDaLib

 1 package scrividalib;
 2 
 3 import mia.lib.*;
 4 import java.util.Scanner; 
 5 
 6 public class ScriviDaLib {
 7 
 8      public static void main(String[] args) {
 9         Scanner scanner = new Scanner(System.in);
10         System.out.print("Per favore, inserisci il tuo nome: ");
11         String nomeUtente = scanner.nextLine();
12         ScriviNome scriviNome = new ScriviNome(nomeUtente);
13         scriviNome.stampaNome();
14     }
15     
16 }

 

In questo progetto abbiamo un solo file sorgente ScriviDaLib.java con metodo main e quindi eseguibile.

 

Cosa fa questo programmino?

Scrive sul terminale questa frase:

Per favore inserisci il tuo nome:

l'utente risponde scrivendo accanto il nome

Per favore inserisci il tuo nome:Silvano Cervelli

poi preme invio e subito il programma risponde:

Il tuo nome è: Silvano Cervelli

 

Questa risposta è stata costruita mediante l'uso del metodo stampaNome(), ma questo metodo non esiste in questo sorgente quindi il compilatore dovrebbe darmi errore. Ciò non accade perchè queso metodo lo andrà a cercare nella libreria che abbiamo aggiunto al progetto.

Per vedere come si aggiunge una libreria ad un progetto vedi qui.

 

In Netbeans sulla colonna di sinistra apriamo la cartella Libraries e noteremo che ora si è aggiunta alla libreria di default JDK 22 anche MiaLib.jar

 

 

E se la esplodiamo ci conferma che al suo interno c'è una sola classe di nome ScriviNome.class.

 

Ripeto sinteticamente che:

Se nella classe ScriviNome il package fosse scrividalib lo stesso che ha il progetto ScriviDaLib allora il metodo stampaNome() verrebbe riconosciuto senza dover usare la linea import mia.lib.*. Se invece, come è nel nostro caso, nella classe ScriviNome c'è un package diverso (infatti è mia.lib) dobbiamo usare la linea import mia.lib.*; per fargli vedere la classe ScriviNome e di conseguenza il suo metodo stampaNome().

 

Piccolo esempio di un progettto che fa uso di una libreria esterna.