Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Paquetes en Java: Gestión de Espacios de Nombres, Acceso y Organización de Código

Los paquetes (packages) en Java se usan para:

Un Paquete es un agrupamiento de tipos relacionados que proporciona protección de acceso y gestión de espacios de nombres.

Paquetes Existentes en Java

Los programadores pueden definir sus propios paquetes para agrupar clases relacionadas. Es buena práctica usar nombres en minúsculas para evitar colisiones con nombres de clases.

Creación de un Paquete

  1. Elige un nombre (p. ej., animals).
  2. Incluye la sentencia package animals; como primera línea en cada archivo fuente que pertenezca al paquete.
  3. Solo una sentencia package por archivo; aplica a todos los tipos del archivo.
  4. Si no hay sentencia package, la clase va al paquete por defecto (sin nombre).

Compilación con Paquetes

Usa la opción -d para especificar el directorio destino:

javac -d Destination_folder file_name.java

Se crea una carpeta con el nombre del paquete y los .class compilados se colocan dentro.

Ejemplo: Paquete animals


/* File: Animal.java */
package animals;
interface Animal {
    void eat();
    void travel();
}

/* File: MammalInt.java */
package animals;
public class MammalInt implements Animal {
    public void eat() { System.out.println("Mamífero come"); }
    public void travel() { System.out.println("Mamífero viaja"); }
    public int noOfLegs() { return 0; }

    public static void main(String args[]) {
        MammalInt m = new MammalInt();
        m.eat(); m.travel();
    }
}

Compilar:


javac -d . Animal.java
javac -d . MammalInt.java

Se crea carpeta animals/ con los .class dentro.

Palabra Clave import

Para usar una clase de otro paquete.

Nota: Las sentencias import van después de package y antes de la declaración de clase.

Estructura de Directorios de los Paquetes

Dos reglas clave:

  1. El nombre del paquete forma parte del nombre calificado de la clase: vehicle.Car.
  2. El nombre del paquete debe coincidir con la estructura de directorios donde residen los .class.

Convención Estándar


// File: Car.java
package vehicle;
public class Car { ... }

Ubicación fuente: ...\vehicle\Car.java (Windows) o .../vehicle/Car.java (Unix).

Nombres de Paquete Basados en Dominio Inverso

Una compañía usa su dominio invertido: com.apple.computers.


// File: Dell.java
package com.apple.computers;
public class Dell { }

Estructura: ...\com\apple\computers\Dell.java

Al compilar con javac -d . Dell.java:


.\com\apple\computers\Dell.class
.\com\apple\computers\Ups.class

Importar Todo un Paquete

import com.apple.computers.*;

Separación de Fuentes y Clases Compiladas

Puedes organizar fuentes y clases en directorios distintos:


\sources\com\apple\computers\Dell.java
\classes\com\apple\computers\Dell.class

Ventajas: dar acceso a classes sin revelar fuentes; gestión independiente.

La ruta completa al directorio classes se llama class path y se configura con la variable de sistema CLASSPATH.

Configurar Variable CLASSPATH

SistemaComando
Windows (ver)set CLASSPATH
UNIX (ver)echo $CLASSPATH
Windows (borrar)set CLASSPATH=
UNIX (borrar)unset CLASSPATH; export CLASSPATH
Windows (establecer)set CLASSPATH=C:\users\jack\java\classes
UNIX (establecer)CLASSPATH=/home/jack/java/classes; export CLASSPATH

Por defecto, el directorio actual y el JAR de la plataforma Java están en el classpath.

Java

  1. Paquetes en Python: Estructura, Importación y Mejores Prácticas
  2. Palabra clave final en Java: Variables, métodos y clases
  3. Operador instanceof en Java: Guía completa
  4. Dominando la herencia en Java: Conceptos, tipos y ejemplos prácticos
  5. Entendiendo las clases anidadas estáticas en Java: Uso, diferencias y ejemplos
  6. Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
  7. Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura
  8. Dominando la Reflexión en Java: Inspeccionando clases, métodos y campos en tiempo de ejecución
  9. Dominando ObjectOutputStream de Java: Serialización, Métodos y Ejemplos Prácticos
  10. Dominando Java Generics: Construyendo Código Reutilizable y Type-Safe
  11. Dominando las operaciones de archivos en Java con java.io: creación, lectura, escritura y eliminación