Hola aprovecho para hacerte algunas propuestas de mejora sobre la clase EnvioDeProductos
En el constructor tienes fechaEnvio=Calendar.getInstance(); pero esto puede resultar confuso, no siempre, pero supongamos que la fecha del envío deba ser establecida con un set y que no se sabe en el momento de crear el objeto. En ese caso sería preferible escribir fechaEnvio=null; de ese modo podremos detectar con exactitud que la fecha de envío no ha sido establecida.
La otra cosa a comentar a lo mejor la has visto ya en otros hilos del foro, es el método public void mostrarEnvio(){
En ese método usas System.out.println para mostrar datos por pantalla. Pero sería interesante en lugar de hacer eso hacer que el método devuelva un String, sería
public String obtenerDatosEnvio() { }
Básicamente haría lo mismo pero en vez de encargarse de mostrar por pantalla lo que haría sería devolver un String con la información. Desde el método main (o desde otro sitio) usaríamos el System.out.println para mostrar el String. Esto tiene una ventaja: ese String se puede usar para muchas cosas (por ejemplo para mostrar por pantalla, o para enviar un correo electrónico con los datos, o para guardar los datos en una base de datos, etc.). Cambiar el planteamiento de ese código sería un buen ejercicio para acomodarnos a las buenas prácticas. Esto enlazaría luego con la entrega CU00694B donde se explica el método toString() que también está relacionado con esto.
Saludos!