Polimorfismo e Interfaces
El polmiorfismo permite tratar objetos de subclases mediante referencias de superclases. Las interfaces definen contratos de comportamiento que las clases implementan:
interface ConexionBD {
void conectar();
String ejecutarConsulta(String sql);
}
class MySQL implements ConexionBD {
@Override
public void conectar() {
System.out.println("Conexión MySQL establecida");
}
@Override
public String ejecutarConsulta(String sql) {
System.out.println("Ejecutando consulta MySQL");
return "éxito";
}
}
class OracleDB implements ConexionBD {
@Override
public void conectar() {
System.out.println("Conexión Oracle establecida");
}
@Override
public String ejecutarConsulta(String sql) {
System.out.println("Ejecutando consulta Oracle");
return "éxito";
}
}
Genéricos
Los genéricos proporcionan seguridad de tipos al permitir parámetros de tipo en clases y métodos:
class Contenedor<T> {
private T contenido;
public void guardar(T elemento) {
this.contenido = elemento;
}
public T obtener() {
return contenido;
}
}
// Uso con tipo específico
Contenedor<Double> contenedorDouble = new Contenedor<>();
contenedorDouble.guardar(15.75);
double valor = contenedorDouble.obtener();
Reflexión
La reflexión permite inspeccionar y manipular clases y objetos en tiempo de ejecución:
Class<?> clase = Saludo.class;
Object instancia = clase.newInstance();
Field campo = clase.getDeclaredField("identificador");
campo.setAccessible(true); // Acceso a miembro privado
campo.set(instancia, 500);
System.out.println(campo.get(instancia));
Operaciones SQL Básicas
DDL (Definición de Datos)
CREATE DATABASE IF NOT EXISTS basedatos CHARSET utf8mb4;
USE basedatos;
CREATE TABLE IF NOT EXISTS cliente (
id INT AUTO_INCREMENT,
nombre VARCHAR(20) NOT NULL,
genero ENUM('masculino','femenino') DEFAULT 'masculino',
edad INT,
salario DOUBLE,
telefono CHAR(15) UNIQUE,
PRIMARY KEY(id)
) ENGINE=InnoDB;
DML (Manipulación de Datos)
-- Inserción
INSERT INTO cliente(nombre, genero, edad, salario, telefono)
VALUES ('Laura', 'femenino', 28, 4200.50, '555-1234');
-- Actualización
UPDATE cliente SET salario = 4800 WHERE id = 1;
-- Eliminación
DELETE FROM cliente WHERE id = 3;