Conceptos Fundamentales de Programación Orientada a Objetos en Java

Encapsulamiento en Java

Implementación de encapsulamiento

class Persona {
    private int edad;
    private String nombre;
    
    public int obtenerEdad() {
        return edad;
    }
    
    public void establecerEdad(int valor) {
        if(valor >= 0 && valor <= 120) {
            this.edad = valor;
        }
    }
    
    public String obtenerNombre() {
        return nombre;
    }
    
    public void establecerNombre(String nombre) {
        this.nombre = nombre;
    }
    
    public void mostrar() {
        System.out.println("Edad: " + edad + " Nombre: " + nombre);
    }
}

public class DemoClase {
    public static void main(String[] args) {
        Persona persona = new Persona();
        persona.establecerEdad(25);
        persona.establecerNombre("María");
        persona.mostrar();
    }
}

Objetos aónimos

class Estudiante {
    public void saludar() {
        System.out.println("Hola Mundo");
    }
}

public class DemoAnonimo {
    public static void main(String[] args) {
        new Estudiante().saludar();
    }
}

Constructores

class Ciudadano {
    int años;
    String identificacion;
    
    public Ciudadano(int años, String id) {
        this.años = años;
        this.identificacion = id;
        System.out.println("Registrado: " + id);
    }
}

public class DemoConstructor {
    public static void main(String[] args) {
        Ciudadano ciudadano = new Ciudadano(30, "ABC123");
    }
}

Manejo de Referencias

class Referencia {
    int valor = 15;
}

public class DemoReferencia {
    public static void main(String[] args) {
        Referencia ref = new Referencia();
        modificar(ref);
        System.out.println(ref.valor);
    }
    
    static void modificar(Referencia r) {
        r.valor = 25;
    }
}

Palabra clave this

class Usuario {
    private String id;
    
    public Usuario() {
        System.out.println("Constructor predeterminado");
    }
    
    public Usuario(String id) {
        this();
        this.id = id;
    }
}

public class DemoThis {
    public static void main(String[] args) {
        Usuario user = new Usuario("U001");
    }
}

Elemanto static

class Empleado {
    String codigo;
    static String empresa = "TechCorp";
    
    public void info() {
        System.out.println("Empleado: " + codigo + " | Empresa: " + empresa);
    }
}

public class DemoStatic {
    public static void main(String[] args) {
        Empleado emp1 = new Empleado();
        emp1.codigo = "E101";
        emp1.info();
    }
}

Herencia en Java

class Vehiculo {
    private String modelo;
    
    public String obtenerModelo() {
        return modelo;
    }
}

class Coche extends Vehiculo {
    private int velocidad;
    
    public void especificaciones() {
        System.out.println("Modelo: " + obtenerModelo() + " | Velocidad: " + velocidad);
    }
}

Sobrescritura de métodos

class Dispositivo {
    public void encender() {
        System.out.println("Dispositivo activado");
    }
}

class Movil extends Dispositivo {
    @Override
    public void encender() {
        super.encender();
        System.out.println("Iniciando sistema operativo");
    }
}

Clases abstractas e enterfaces

abstract class Figura {
    abstract double calcularArea();
}

class Circulo extends Figura {
    double radio;
    
    @Override
    double calcularArea() {
        return Math.PI * radio * radio;
    }
}

Implementación de interfaces

interface Conectable {
    void conectar();
    void desconectar();
}

class Impresora implements Conectable {
    @Override
    public void conectar() {
        System.out.println("Impresora lista");
    }
    
    @Override
    public void desconectar() {
        System.out.println("Impresora desconectada");
    }
}

Polimorfismo

class Animal {
    void sonido() {
        System.out.println("Sonido genérico");
    }
}

class Perro extends Animal {
    @Override
    void sonido() {
        System.out.println("Ladrido");
    }
}

public class DemoPolimorfismo {
    public static void main(String[] args) {
        Animal mascota = new Perro();
        mascota.sonido();
    }
}

Tipos genéricos

class Contenedor<T> {
    private T elemento;
    
    public void guardar(T item) {
        elemento = item;
    }
    
    public T obtener() {
        return elemento;
    }
}

public class DemoGenerico {
    public static void main(String[] args) {
        Contenedor<String> caja = new Contenedor<>();
        caja.guardar("Datos");
        System.out.println(caja.obtener());
    }
}

Métodos genéricos

class Utilidades {
    public <T> T procesar(T entrada) {
        return entrada;
    }
}

public class MetodoGenerico {
    public static void main(String[] args) {
        Utilidades util = new Utilidades();
        System.out.println(util.procesar(100));
    }
}

Etiquetas: java POO Encapsulamiento herencia polimorfismo

Publicado el 7-11 10:15