Como no soy fanático de estas otras respuestas, escribiré las mías.
reales ejemplos del mundo:
Piense en un "paquete" como una manera fácil para una clase de Java para hacer referencia a otra.
Digamos que tengo esta gran caja en mi ático. Tengo una calculadora, una brújula, un transportador, etc. Puedo etiquetar esta casilla MathTools
.
Otro ejemplo sería tomar todas las fotografías y ponerlas en la carpeta Pictures
en sus documentos. A partir de ahí, puede dividirlos en Spring Break 2009
o [Insert Name Here]'s Party
.
¿Cómo se relaciona esto con Java? Bueno, echemos un vistazo al paquete java.util
(puede hacer referencia a esto con import java.util.*;
. Tiene ArrayLists, Strings, Random, etc. que se utilizan en la mayoría de los programas Java ("utilidades" comunes, si lo prefiere). Todos están organizados cuidadosamente en el mismo paquete, por lo que los programadores pueden crear fácilmente una referencia de ellos (import java.util.*;
)
Fácil aplicación:.
vamos a suponer que podemos encontrar todos los archivos a un pequeño simulador de dados en C:/Program Files/Java Project/my/proj/
(lo más probable que este archivo no existe en su computadora, pero solo pretendo por un momento).
Tiene 3 archivos: Main.java
, Dice.java
y DiceRoller.java
. Todos los cuales se muestran a continuación:
.
"C:/Archivos de programa/proyecto Java/mi/proj/main/Main.java
":
package my.proj.main;
import my.proj.sims.Dice;
public class Main
{
public static void main(String[] args)
{
DiceRoller roller = new DiceRoller();
roller.rollAndShow(4);
}
}
"C:/Archivos de programa/proyecto Java/mi/proj/sims/Dice.java
":
package my.proj.sims;
import java.util.Random; // I used the Random class, but you can also use the Math class if you prefer (java.lang.Math)
public class Dice
{
public Dice()
{
}
public int roll()
{
Random rand = new Random();
return rand.nextInt(6) + 1; // Rolls a random number 1-6
}
}
"C:/ProgramFiles/proyecto Java/mis/proj/sims/DiceRoller.java
":
package my.proj.sims;
public class DiceRoller
{
public DiceRoller()
{
}
// Rolls and prints the result of 'n' number of rolls
public void rollAndShow(int n)
{
Dice dice = new Dice();
for (int i = 0; i < n; i++)
{
System.out.println(dice.roll()); // You should never use S.o.p in a method - it's bad practice, but it's easier this way if you don't yet understand the concept of objects
}
}
}
.
cosas a destacar:
Main.java
se empaqueta en my.proj.main
Dice.java
se empaqueta en my.proj.sims
Main.java
necesidades de importar my.proj.sims.Dice
con el fin de crear un objeto Dice
y utilizar sus métodos porque está en una paquete diferente desde Dice.java
.
DiceRoller.java
no necesita importar my.proj.sims.Dice
porque está en el mismo paquete que Dice.java
y el compilador asociará automáticamente los dos.
.
Import
es un comando para cargar la funcionalidad de una clase en el archivo actual. Mira Dice.java
, por ejemplo. Para que cree un objeto Random
, que tiene el método nextInt()
, necesita importar la clase Aleatoria del paquete java.util.*
.
.
Usted puede notar que algunas personas prefieren utilizar java.util.*
en lugar de java.util.Random
, java.util.ArrayList
, etc. Lo que el *
significa esencialmente es cualquier clase dentro de java.util
. Al ejecutar import java.util.*
se importarán las clases Random, String, ArrayList, etc.
.
Espero que esto aclare las cosas. Por favor, considere la votación ascendente si esto le ha ayudado :)
Las respuestas a esta pregunta pueden ayudar: http://stackoverflow.com/questions/1088509/what-is-the-purpose-of-defining-a-package-in-java-file – BoltClock