Mini proyecto de Java
Construyes un programa de terminal pequeño que pregunta qué hay en una caja, cuántas hay, e imprime una línea de etiqueta. En Box.java mantén la clase pública Box, importa java.util.Scanner, pregunta con item: y how many:, guarda las respuestas e imprime label(item, count). Compila con javac Box.java y ejecuta java Box. Escribe mug, Enter, 4, Enter. La última línea en pantalla debe ser mug 4. Deja Program Arguments para la página siguiente. Esta lección es una conversación corta que ejecutas tú mismo, no una página nueva de teoría de compilación ni un mapa de Summary.
Pregunta dos veces, luego imprime una etiqueta
Abre Box.java. Mantén el nombre de clase pública Box. Borra demos sobrantes de compilación Build, líneas sobrantes de Summary Recap, tiradas Dice con Random y impresiones de fecha Stamp sobrantes si entierran la historia del mini proyecto. Este archivo debe esperar escritura a propósito.
Añade el import arriba:
import java.util.Scanner;
Mantén un ayudante pequeño que une las dos respuestas con un espacio:
public static String label(String item, String count) {
return item + " " + count;
}
Dentro de Box.main, crea un scanner, pregunta dos veces, luego imprime la etiqueta:
Scanner in = new Scanner(System.in);
System.out.print("item: ");
String item = in.nextLine();
System.out.print("how many: ");
String count = in.nextLine();
System.out.println(label(item, count));
Escribirás mug, luego 4. La última línea será mug 4. Los prompts quedan en las líneas de espera. No se guardan dentro de la etiqueta.
import java.util.Scanner;
public class Box {
public static String label(String item, String count) {
return item + " " + count;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("item: ");
String item = in.nextLine();
System.out.print("how many: ");
String count = in.nextLine();
System.out.println(label(item, count));
}
}
Desde la carpeta con Box.java, ejecuta javac Box.java. Cuando llaves y punto y coma coinciden, javac no escribe línea propia y crea Box.class. Luego ejecuta java Box — no java Box.java. Mantén una clase pública para que el nombre coincida con Box.
La pantalla muestra una conversación breve. El programa espera en item: y escribes mug, luego Enter. item guarda mug. El texto item: solo se muestra mientras espera, así que no se almacena en item. Luego espera en how many: y escribes 4, luego Enter. count guarda 4, los caracteres que escribiste. La pregunta how many: tampoco se guarda. println escribe la línea que devuelve label. Esa línea es mug 4. El espacio entre mug y 4 está en la expresión return. El programa termina. No hay cuarta línea de resultado tras la etiqueta.
Di la regla de principiante mientras miras la ejecución: dos prompts, dos respuestas, una etiqueta unida. No inventes demos de Program Arguments en esta página. Program Arguments espera la lección siguiente. No trates item: mug como etiqueta. No trates how many: 4 como etiqueta.
Si aún ves ok o ok luego built de un archivo Build de compilación sobrante, cambia a Box.java, compila y ejecuta java Box con las dos respuestas. Si javac no encuentra Scanner, revisa la línea import arriba en Box.java.
La última línea es la etiqueta, no las preguntas
La última línea es mug 4. No es item: mug. No es how many: 4. Esos prompts quedan en las líneas de espera junto a lo que escribiste. label recibe solo mug y 4. Si la línea return dijera item + ": " + count, la última línea sería mug: 4, pero no es la línea de este programa. Esta línea return pone un espacio entre las respuestas, así que la última línea es mug 4.
count guarda los caracteres 4 como String de nextLine. No parseas un int en esta página. No lanzas Random. No imprimes ready 42 de Recap. Etiquetas una caja con dos respuestas escritas.
Si escribes palabras distintas, la etiqueta cambia. El quiz y el recorrido mantienen mug y 4 para que la última línea sea predecible. Practica una vez con esas respuestas antes de experimentar.
Mini proyecto no es Compiling ni Program Arguments
Compiling enseñó que javac escribe .class y java lo carga con Build. El mini proyecto usa esos hábitos y añade conversación real con Scanner. Program Arguments mostrará cómo funciona el array args de main cuando inicias el programa con palabras extra en la página siguiente. No mezcles esas tres tareas en un archivo de principiante hoy.
Mantén System.out.print para los prompts para que la respuesta quede en la misma línea visual que la pregunta en muchas terminales. Mantén println para la etiqueta final en su propia línea. Mantén nextLine para leer una respuesta completa tras Enter.
Sin el import, javac falla antes de cualquier prompt. Sin escribir las dos respuestas, el programa espera. Sin label, podrías unir en println, pero esta página guarda un ayudante con nombre para que los métodos sigan visibles en el mini proyecto.
Recorre otra vez la ejecución escrita
Empieza en Box.main. El scanner lee de System.in. El primer print muestra item:. Escribes mug y Enter. nextLine guarda mug en item. El segundo print muestra how many:. Escribes 4 y Enter. nextLine guarda 4 en count. label(item, count) devuelve mug 4. println escribe esa cadena. Termina la ejecución.
Si la última línea muestra mug4 sin espacio, comprueba que la expresión return aún incluye " ". Si muestra item: mug 4, metiste texto del prompt en la unión por error — deja prompts solo en las llamadas print. Si nada espera, quizá sigues ejecutando un archivo Build que imprime palabras fijas sin Scanner.
Archivos Build y Recap sobrantes pueden quedar como historial. Para este checkpoint ejecuta el archivo de enseñanza Box hasta que la última línea muestre mug 4 tras esas dos respuestas.
Los hábitos de carpeta y compilación siguen importando
Lista la carpeta tras compilar bien. Debes ver Box.java y Box.class juntos. Edita el fuente, guarda, ejecuta javac Box.java, luego java Box otra vez. Un .class viejo puede mostrar forma de etiqueta antigua si saltas compilar tras editar — la misma lección Compiling, ahora ligada a un programa Scanner.
Mantén una clase pública llamada Box. No pegues bucles de Program Arguments en este archivo aún. No añadas semillas Random para «enriquecer» la etiqueta. No congeles LocalDate dentro de Box. El mini proyecto es pequeño a propósito: dos preguntas, una etiqueta.
Cuando javac se queja de clases públicas duplicadas, deja solo Box pública. Cuando la ejecución no encuentra o carga Box, confirma carpeta con Box.class y compilación exitosa.
Antes de Program Arguments
Puedes mantener la clase pública Box, importar Scanner, preguntar item: y how many:, guardar respuestas, imprimir label(item, count), compilar con javac Box.java, ejecutar java Box, escribir mug luego 4, y ver mug 4 como última línea. Los prompts no forman parte de esa etiqueta. La página siguiente es Program Arguments, donde pasas palabras en la línea de comandos al iniciar el programa.
Mantén la conversación Box para un mini proyecto claro. Deja demos de compilación Build fuera de esta página al practicar la etiqueta Scanner. Deja archivos Summary Recap fuera al practicar la etiqueta. Deja demos Program Arguments fuera hasta esa lección. Esos hábitos son el checkpoint antes de seguir. Cuando la última línea muestra mug 4 tras las dos respuestas, el mini proyecto cumplió su trabajo y estás listo para Program Arguments.
Un último pase por la carpeta: una Box pública, import presente, dos prompts print, dos guardados nextLine, una unión label, sin Random, sin LocalDate, compilar luego ejecutar. Ejecuta javac Box.java y java Box una vez más. Escribe mug, luego 4. Si la última línea sigue siendo mug 4, la forma del mini proyecto es sólida y el curso puede pasar a Program Arguments en la página siguiente. Prefiere un hábito de conversación claro por lectura para que cada paso enseñe el mismo mapa.
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior