En este tema, aprenderemos a desarrollar una aplicación de consola en Java. Las aplicaciones de consola son programas que se ejecutan en la línea de comandos y no tienen una interfaz gráfica de usuario. Son ideales para aprender los conceptos básicos de programación y para tareas automatizadas.

Objetivos del Tema

  • Comprender la estructura de una aplicación de consola en Java.
  • Aprender a leer y escribir datos en la consola.
  • Desarrollar una aplicación de consola simple que interactúe con el usuario.

Estructura de una Aplicación de Consola

Una aplicación de consola en Java generalmente sigue una estructura básica que incluye:

  1. Clase Principal: Contiene el método main, que es el punto de entrada de la aplicación.
  2. Métodos Auxiliares: Métodos adicionales que realizan tareas específicas.

Ejemplo de Estructura Básica

public class ConsoleApp {
    public static void main(String[] args) {
        // Punto de entrada de la aplicación
        System.out.println("Bienvenido a la Aplicación de Consola");
        
        // Llamada a un método auxiliar
        greetUser();
    }

    // Método auxiliar para saludar al usuario
    public static void greetUser() {
        System.out.println("Hola, usuario!");
    }
}

Lectura y Escritura en la Consola

Para interactuar con el usuario, utilizamos las clases Scanner para la entrada de datos y System.out para la salida de datos.

Ejemplo de Lectura y Escritura

import java.util.Scanner;

public class ConsoleApp {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("Ingrese su nombre:");
        String name = scanner.nextLine();
        
        System.out.println("Hola, " + name + "!");
        
        scanner.close();
    }
}

Explicación del Código

  • Importación de Scanner: import java.util.Scanner; permite utilizar la clase Scanner para leer datos de la consola.
  • Creación de un objeto Scanner: Scanner scanner = new Scanner(System.in); crea un objeto Scanner que lee datos de la entrada estándar (la consola).
  • Lectura de Datos: String name = scanner.nextLine(); lee una línea completa de texto ingresada por el usuario.
  • Escritura de Datos: System.out.println("Hola, " + name + "!"); imprime un mensaje en la consola.
  • Cierre del Scanner: scanner.close(); cierra el objeto Scanner para liberar recursos.

Desarrollo de una Aplicación de Consola Completa

Vamos a desarrollar una aplicación de consola que realice las siguientes tareas:

  1. Solicitar al usuario su nombre.
  2. Solicitar al usuario su edad.
  3. Calcular el año de nacimiento del usuario.
  4. Mostrar un mensaje con el año de nacimiento.

Código Completo

import java.util.Scanner;

public class ConsoleApp {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Solicitar el nombre del usuario
        System.out.println("Ingrese su nombre:");
        String name = scanner.nextLine();
        
        // Solicitar la edad del usuario
        System.out.println("Ingrese su edad:");
        int age = scanner.nextInt();
        
        // Calcular el año de nacimiento
        int currentYear = java.time.Year.now().getValue();
        int birthYear = currentYear - age;
        
        // Mostrar el mensaje con el año de nacimiento
        System.out.println("Hola, " + name + ". Naciste en el año " + birthYear + ".");
        
        scanner.close();
    }
}

Explicación del Código

  • Lectura de la Edad: int age = scanner.nextInt(); lee un número entero ingresado por el usuario.
  • Obtención del Año Actual: int currentYear = java.time.Year.now().getValue(); obtiene el año actual utilizando la clase Year de la API de tiempo de Java.
  • Cálculo del Año de Nacimiento: int birthYear = currentYear - age; calcula el año de nacimiento restando la edad del año actual.
  • Mostrar el Mensaje: System.out.println("Hola, " + name + ". Naciste en el año " + birthYear + "."); imprime un mensaje con el año de nacimiento.

Ejercicio Práctico

Ejercicio

Desarrolla una aplicación de consola que realice las siguientes tareas:

  1. Solicitar al usuario su nombre.
  2. Solicitar al usuario su altura en metros.
  3. Solicitar al usuario su peso en kilogramos.
  4. Calcular el índice de masa corporal (IMC) del usuario.
  5. Mostrar un mensaje con el IMC calculado.

Solución

import java.util.Scanner;

public class IMCCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Solicitar el nombre del usuario
        System.out.println("Ingrese su nombre:");
        String name = scanner.nextLine();
        
        // Solicitar la altura del usuario
        System.out.println("Ingrese su altura en metros (por ejemplo, 1.75):");
        double height = scanner.nextDouble();
        
        // Solicitar el peso del usuario
        System.out.println("Ingrese su peso en kilogramos:");
        double weight = scanner.nextDouble();
        
        // Calcular el IMC
        double bmi = weight / (height * height);
        
        // Mostrar el mensaje con el IMC calculado
        System.out.println("Hola, " + name + ". Tu IMC es " + bmi + ".");
        
        scanner.close();
    }
}

Explicación del Código

  • Lectura de la Altura: double height = scanner.nextDouble(); lee un número decimal ingresado por el usuario.
  • Lectura del Peso: double weight = scanner.nextDouble(); lee un número decimal ingresado por el usuario.
  • Cálculo del IMC: double bmi = weight / (height * height); calcula el índice de masa corporal utilizando la fórmula IMC = peso / (altura * altura).
  • Mostrar el Mensaje: System.out.println("Hola, " + name + ". Tu IMC es " + bmi + "."); imprime un mensaje con el IMC calculado.

Conclusión

En este tema, hemos aprendido a desarrollar una aplicación de consola en Java. Hemos cubierto la estructura básica de una aplicación de consola, cómo leer y escribir datos en la consola, y hemos desarrollado una aplicación completa que interactúa con el usuario. Además, hemos realizado un ejercicio práctico para reforzar los conceptos aprendidos.

En el siguiente tema, exploraremos el desarrollo de una aplicación web en Java, lo que nos permitirá crear aplicaciones más complejas y con interfaces gráficas.

Curso de Programación en Java

Módulo 1: Introducción a Java

Módulo 2: Flujo de Control

Módulo 3: Programación Orientada a Objetos

Módulo 4: Programación Orientada a Objetos Avanzada

Módulo 5: Estructuras de Datos y Colecciones

Módulo 6: Manejo de Excepciones

Módulo 7: Entrada/Salida de Archivos

Módulo 8: Multihilo y Concurrencia

Módulo 9: Redes

Módulo 10: Temas Avanzados

Módulo 11: Frameworks y Librerías de Java

Módulo 12: Construcción de Aplicaciones del Mundo Real

© Copyright 2024. Todos los derechos reservados