PROG02 - Creación de mi primer programa

Introducción a la Programación Java

Conceptos Básicos de Programación

Todos los lenguajes de programación comparten ciertos elementos esenciales que son fundamentales para desarrollar software. Estos elementos incluyen:

  • Tipos de Datos: Son las diferentes maneras de almacenar información (como números, caracteres, etc.).

  • Operadores: Son símbolos que permiten realizar operaciones matemáticas o comparaciones.

  • Instrucciones: Son los comandos que indican al programa qué hacer en diferentes situaciones.

Dominar estos conceptos es vital para integrarse de manera efectiva en un equipo que trabaja en programación. Los datos que utilizamos en nuestras aplicaciones se guardan en la memoria del ordenador y se utilizan para tomar decisiones lógicas, lo que permite a los desarrolladores crear aplicaciones interactivas y funcionales.

Proyecto: Aplicación para Clínica Veterinaria

En este caso, hay un equipo de personas (María y Juan) que está trabajando en una aplicación destinada a una clínica veterinaria. Esta aplicación es multiplataforma, es decir, puede funcionar en diferentes sistemas operativos, como Windows o Mac, sin que sea necesario hacer cambios importantes. Juan es el encargado de liderar el desarrollo porque ya tiene experiencia en el lenguaje de programación Java, que es el que se está utilizando para crear la aplicación.

La aplicación incluirá funciones importantes como:

  • Gestión de citas: Para que los dueños de las mascotas puedan reservar visitas.

  • Historial médico: Para llevar un registro de la salud de las mascotas.

  • Sistema de facturación: Para gestionar los pagos.

Crear estas funciones requiere un diseño cuidadoso de las clases y objetos, conceptos que ayudan a estructurar el software de manera organizada y eficaz.

Programación Orientada a Objetos

La programación orientada a objetos (POO) es un enfoque que facilita la creación de software al organizar los datos y las funciones en objetos. Un objeto puede contener información (como el nombre de una mascota) y acciones (como hacer un sonido). Para este proyecto, se deben crear clases que representen entidades como:

  • Veterinario

  • Mascota

  • Cita

Estos objetos pueden interactuar entre sí, facilitando la gestión de la información en el programa.

Encapsulación

La encapsulación es un concepto que se refiere a ocultar los detalles internos de un objeto. Esto significa que solo se puede acceder a la información y acciones del objeto a través de métodos específicos. Por ejemplo:

class Mascota {
    private String nombre; // El nombre está oculto

    public String getNombre() { // Método para acceder al nombre
        return nombre;
    }

    public void setNombre(String nombre) { // Método para cambiar el nombre
        this.nombre = nombre;
    }
}

Esto asegura que la información del objeto se mantenga segura y solo se pueda modificar de la manera correcta.

Herencia

La herencia permite que un objeto (clase) herede características de otro. Por ejemplo, podríamos tener una clase general llamada Animal que contendría características comunes y luego derivar clases específicas como Perro y Gato que heredan de Animal. Esto es útil porque evita repetir código:

class Animal {
    String nombre;
    public void hacerSonido() { }
}

class Perro extends Animal {
    public void hacerSonido() {
        System.out.println("Guau");
    }
}

class Gato extends Animal {
    public void hacerSonido() {
        System.out.println("Miau");
    }
}

En este ejemplo, tanto el Perro como el Gato pueden hacer un sonido, pero cada uno lo hace de manera diferente.

Polimorfismo

El polimorfismo significa que diferentes objetos pueden responder a la misma acción de maneras distintas. Esto se logra mediante la sobrescritura de métodos. Por ejemplo:

Animal miAnimal;
miAnimal = new Perro();
miAnimal.hacerSonido(); // Salida: Guau
miAnimal = new Gato();
miAnimal.hacerSonido(); // Salida: Miau

Aquí, dependiendo del tipo de animal, el sonido que hace cambia, aunque usamos el mismo método.

Importancia del Lenguaje Java

Java es un lenguaje de programación de alto nivel, lo que significa que está diseñado para ser fácil de leer y entender por los humanos. Además, es conocido por ser seguro y robusto, lo que lo hace ideal para crear aplicaciones serias y que funcionen en diferentes plataformas. Aprender Java es fundamental para poder trabajar en el desarrollo de software. Se aconseja consultar la documentación oficial de Oracle para guías sobre características y buenas prácticas del lenguaje. En lugar de memorizar todo, es recomendable aprender a buscar información en los manuales, ya que esto facilitará un aprendizaje más efectivo.

Variables e Identificadores

Las variables son contenedores en la memoria del ordenador que pueden almacenar valores que cambian a lo largo del tiempo en el programa. Cada variable tiene que tener un nombre único y descriptivo para que sea más fácil entender el código. Por ejemplo:

int numeroDeMascotas;

Aquí, numeroDeMascotas es el nombre de la variable que podría almacenar cuántas mascotas hay.

El tipo de variable determina el tipo de datos que puede contener. Por ejemplo:

int aux; // almacenar enteros
float precio; // almacenar números decimales
char letra; // almacenar un carácter
boolean estado; // almacenar verdadero o falso

Normas para Nombrar Identificadores

En Java, los nombres son sensibles a mayúsculas y minúsculas, lo que significa que variable y Variable son cosas distintas. Es importante nombrar las variables de manera descriptiva y evitar comenzar con símbolos como $ o _. Tampoco se deben usar palabras reservadas de Java. Ejemplo de mejores prácticas:

String ficheroClientes; // nombre claro en vez de Cl33

Tipos de Datos en Java

Tipos de Datos Primitivos

Java tiene varios tipos de datos primitivos que son básicos y específicos:

  • int: un número entero. Ejemplo: int numero = 10;

  • float: un número decimal. Ejemplo: float precio = 5.5f;

  • double: para números decimales de mayor precisión. Ejemplo: double mayorPrecision = 10.99;

  • char: un solo carácter. Ejemplo: char letra = 'A';

  • boolean: verdadero o falso. Ejemplo: boolean esVerdadero = true;

Tipos Referenciados

Los tipos referenciados se usan para almacenar direcciones en la memoria, como en estructuras que permiten guardar múltiples valores, por ejemplo:

String[] nombres = new String[5]; // arreglo de cadenas que puede almacenar hasta 5 nombres

Operadores y Expresiones

Operadores Aritméticos

Los operadores aritméticos permiten realizar cálculos básicos. Por ejemplo:

int suma = 5 + 3; // resultado: 8
int resta = 5 - 3; // resultado: 2
int producto = 5 * 3; // resultado: 15
int division = 5 / 3; // resultado: 1 (división entera)
int modulo = 5 % 3; // resultado: 2

Operadores Relacionales y Lógicos

Los operadores relacionales se utilizan para comparar valores, y los operadores lógicos combinan expresiones booleanas:

boolean esIgual = (5 == 5); // true
boolean esDiferente = (5 != 4); // true
boolean resultado = (5 > 3) && (3 < 10); // true

Conversión de Tipos

En Java, a veces es necesario cambiar de un tipo a otro. Esto puede hacerse automáticamente o mediante un proceso llamado casting:

int entero = 10;
long largo = entero; // conversión automática de entero a largo
float decimal = 10.5f;
int convertido = (int) decimal; // conversión explícita

Comentarios en el Código

Los comentarios son notas que se añaden en el código para hacerlo más claro y comprensible. Se pueden añadir de una línea con // o en bloque con /* ... */:

// Este es un comentario de una línea
/* Este es un
comentario en bloque */

Conclusiones

En este documento, hemos revisado conceptos básicos de programación en Java como los tipos de datos, variables, operadores y conversiones. Entender estos fundamentos es crucial para seguir aprendiendo sobre clases y objetos en programación orientada a objetos. Dominar estas áreas ayudará a crear aplicaciones más eficientes y efectivas, además de contribuir al crecimiento personal y profesional en el campo del software.