Salta ai contenuti

Package e import

Quando un progetto contiene poche classi, puoi tenerle nella stessa cartella.

Quando cresce, serve ordine. I package aiutano a raggruppare classi collegate.

Un package e come una cartella logica per il codice.

In cima a un file Java puoi scrivere:

package negozio;

Poi definisci la classe:

package negozio;
public class Prodotto {
private String nome;
public Prodotto(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
}

Di solito la cartella rispecchia il package:

negozio/Prodotto.java

Se una classe si trova in un package diverso, puoi importarla.

import java.util.ArrayList;

Questo import ti permette di scrivere:

ArrayList<String> nomi = new ArrayList<>();

Senza import dovresti scrivere il nome completo:

java.util.ArrayList<String> nomi = new java.util.ArrayList<>();

Troppo lungo per l’uso quotidiano.

Molte classi utili fanno parte della libreria standard Java.

Esempi:

import java.util.Scanner;
import java.util.ArrayList;
import java.util.HashMap;
import java.io.File;

java.util contiene molte strutture e strumenti generali.

java.io contiene classi per input e output, inclusi i file.

Immagina questa struttura:

src/
negozio/
Prodotto.java
app/
Main.java

Prodotto.java:

package negozio;
public class Prodotto {
}

Main.java:

package app;
import negozio.Prodotto;
public class Main {
public static void main(String[] args) {
Prodotto prodotto = new Prodotto();
}
}

Il package dichiarato deve essere coerente con la cartella.

Se un file dice:

package negozio;

ma lo tieni in una cartella non coerente, strumenti e compilatore possono confondersi.

Un altro errore comune e dimenticare public su una classe che vuoi usare da un altro package.

public class Prodotto {
}

All’inizio usa package semplici e nomi chiari.

Quando un progetto cresce, raggruppa per argomento:

app
model
service
repository

Non creare package solo per complicare. Devono aiutare a trovare il codice.