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));
}
}