Duda sobre Java

Buenas Eolianos, estoy aprendiendo Java (tengo base de C++), pero me surgen unas dudas, a ver si podeis ayudarme. Primero pondré el código.

import java.util.*;

class hello {
   static public enum Estacion {
      Primavera, Verano, Otoño, Invierno
      };
   
   public static void main(String args[]) {
      for( Estacion e: Estacion.values()) {
         System.out.println("La estacion es " +e);
      }
   }
}


Vale, ahora van las preguntas una a una.

1. Los import se que son el equivalente a los #include de C++, cargando librerias primarias y tal, ¿no?

2. Tenemos una clase general llamada hello (el archivo fuente se llama hello.java). La pregunta es, ¿todas las estructuras de datos hay que crearlas dentro de dicha clase? Supongo que será la "clase principal" de la cual dependen todas no?

3. el public static void main(String args[]) supongo que es el programa principal (el equivalente al void main() de C++ no? Es decir, si quiero crear subprogramas, aunque los llame desde el main, puedo crearlos fuera siempre que estén dentro de la class bello no?

4. Tenía entendido que la función values() devuelve el valor no? Entonces como es posible que pueda usarla dentro del for? Si realmente no he especificado unos valores "desde" y "hasta" del for no? O ya con values() también devuelve el valor?

Gracias eolianos!
Te respondo por puntos, aunque no vas mal encaminado:

1. Si, con la sentencia import importas clases, ya sean clases dentro de librerias, o clases creadas por ti.

2 y 3. Normalmente en un programa tendrás una clase main que tiene un método "public static void main(String args[])" que es lo que busca cuando se ejecuta el programa. Las buenas prácticas dicen que cada objeto que crees tiene que estar en un fichero java separado. Esto hace que tengas más archivos, pero también te facilita posteriormente los cambios.

4. La traducción de ese "for" sería: recorre todos los valores dentro del enum Estacion y en cada iteración el valor actual lo guardas en e.
Como te ha dicho el compañero siempre es mejor separar las cosas en ficheros aparte, y separa todo lo que puedas en métodos distintos, así a la hora de tener que cambiar algo se te facilitará mucho el trabajo y evitarás muchos problemas que puedan extenderse a otros métodos, variables etc...
3 respuestas