👨‍💻
Coding Library
  • 👨‍💻Coding Library
  • 👾Linux
    • Basic Commands
    • Other commands
      • Ls
      • Mv
      • Chmod
      • Ln
      • Cat
      • Wc
      • Grep
      • Sed
      • Find
    • Sistema de ficheros
      • Inodos
  • 📦Git
    • Page 3
  • 🖊️Vim
    • Vim Basics
      • Gramatica de Vim
      • Moviendote por un archivo
    • Todo y mas
  • 🏛️C
    • Estructuras de datos
      • Listas Enlazadas
      • Colas
      • Pilas
      • Arboles
    • Valgrind
    • Operadores de bits
    • Procesos e Hilos
      • Fork
      • Wait
      • Waitpid
      • Semáforos
      • Estructura sigaction
      • Signals
    • MiniLibX
      • Ventanas (windows)
      • Imprimir Pixels
      • Imagenes
      • Colores
      • Eventos
      • Loops (bucles)
      • Leer imagenes
    • Readline
    • Funciones
      • opendir
      • access
    • Network Programming
      • Structs
      • Llamadas al sistema
      • Synchronous I/O Multiplexing
        • kqueue
  • 🌃C++
    • Clases
      • Herencia
      • Shallow and deeps copies
      • Clases abstractas y Interfaces
      • Reasignar operadores
    • Punteros y referencias
    • Manejo de ficheros
    • Punteros a funciones
    • Excepciones
    • Casting
    • Templates
    • Templated Containers
      • Iterators
      • std::vector
      • std::list
      • std::map
  • 🧠Pyhton
    • Sintaxis basica
    • Scripts
    • Tipos de datos
      • Listas
      • Set
      • Diccionarios
      • Generadores
    • Estructuras de control
      • Iterar con For
      • Iterar con zip
      • Iterar con enumerate
    • Map, Filter and Reduce
    • Funciones
    • Clases
      • Metodos
      • Herencia
    • Formateo con {} y format()
    • Decoradores
  • 📦JAVA
    • Conceptos basicos
    • Programacion estructurada
    • Clases predefinidas
    • POO
      • Clases
      • Herencia
      • Polimorfismo
      • Abstraccion
      • Encapsulacion
    • ArrayList
    • Excepciones
  • ⚒️HTML
    • HTML Basics
    • Elementos de bloque
      • Titulos y parrafos
      • Header, Main y Footer
      • Section, article y aside
    • Elementos en línea
    • Atributos
    • Enlaces <a>
    • Listas
    • Tablas
    • Formularios
      • Input
      • Select y datalist
      • GET y POST
    • Contenido embebido
      • Imagenes
      • Audio y video
      • Iframe
  • 🎨CSS
    • Introduccion
    • Selectores
    • Como funciona CSS
    • Box Model
    • Desbordamiento y Colapso de margenes
    • Display
    • Position
    • Medidas absolutas y relativas
  • 🟡JavaScript
    • Promesas
    • Async/Await
  • 📲Svelte
    • Componentes
    • Reactividad
    • Directivas
    • Eventos
  • 🖥️Sistemas
    • Particiones
  • 🕸️Redes
    • IP Adress
    • Subnet Mask
  • 🕷️Web Scrapping
    • Scrapy
      • Spiders
        • CrawlerSpider
      • Process data
      • Save data
        • CSV y JSON
        • SQLite
    • Splash
    • Selenium
Powered by GitBook
On this page
  1. JAVA

POO

PreviousClases predefinidasNextClases

Last updated 1 year ago

La Programación Orientada a Objetos (POO) es un paradigma fundamental en el desarrollo de software que se centra en la creación y manipulación de objetos. Java, como lenguaje de programación, se basa en este paradigma, y a continuación, exploraremos los conceptos clave de la POO en Java:

  • Clases

    • Modificadores de acceso

    • Objetos

  • Metodos y paso de metodos

    • cosntructores y destructores

    • setters y getters

  • Pilares de POO

    • Abstraccion

      • Interfaces

      • Clases abstractas

    • Encapsulamiento

    • Herencia

    • Polimorfismo

      • Polimorfismo en tiempo de compilacion

      • Polimorfismo en tiempo de ejecucion

Los 4 pilares

La Programación Orientada a Objetos (POO) se basa en cuatro pilares: encapsulamiento, herencia, polimorfismo y abstracción. Estos principios estructuran el diseño de software, permitiendo la encapsulación de datos, reutilización de código, flexibilidad con polimorfismo y simplificación conceptual mediante abstracción. Son fundamentales para construir sistemas eficientes en POO.

Clases y Objetos

En Java, todo se organiza en clases y objetos. Una clase es un plano o un modelo para crear objetos, y un objeto es una instancia específica de una clase.

// Definición de una clase en Java
public class Coche {
    String marca;
    int anio;

    // Constructor
    public Coche(String m, int a) {
        marca = m;
        anio = a;
    }

    // Método
    public void conducir() {
        System.out.println("Conduciendo un coche de marca " + marca);
    }
}

// Creación de un objeto
Coche miCoche = new Coche("Toyota", 2022);

Encapsulamiento:

El encapsulamiento implica ocultar los detalles internos de una clase y exponer solo lo necesario. Los modificadores de acceso (private, protected, public) son esenciales para lograr el encapsulamiento.

public class CuentaBancaria {
    private double saldo;

    public void depositar(double cantidad) {
        // Lógica para realizar el depósito
        saldo += cantidad;
    }

    public double obtenerSaldo() {
        return saldo;
    }
}

Herencia:

La herencia permite la creación de nuevas clases basadas en clases existentes, heredando sus propiedades y comportamientos. En Java, se utiliza la palabra clave extends.

// Clase base
public class Animal {
    public void comer() {
        System.out.println("El animal come comida general.");
    }
}

// Clase derivada
public class Perro extends Animal {
    public void ladrar() {
        System.out.println("Guau, guau");
    }
}

Polimorfismo

El polimorfismo permite que un objeto pueda tomar muchas formas. En Java, el polimorfismo se logra mediante la sobrecarga de métodos y la implementación de interfaces.

interface Forma {
    void dibujar();
}

class Circulo implements Forma {
    public void dibujar() {
        System.out.println("Dibujando un círculo");
    }
}

class Cuadrado implements Forma {
    public void dibujar() {
        System.out.println("Dibujando un cuadrado");
    }
}

Abstracción

La abstracción se refiere a la simplificación de conceptos complejos mediante la creación de clases abstractas e interfaces. Java permite la declaración de clases abstractas y la implementación de interfaces.

// Clase abstracta
abstract class Figura {
    abstract void dibujar();
}

// Implementación de la clase abstracta
class Triangulo extends Figura {
    void dibujar() {
        System.out.println("Dibujando un triángulo");
    }
}

La POO en Java proporciona un marco sólido para el desarrollo de software, facilitando la modularidad, reutilización de código y mantenimiento. Al comprender estos conceptos, los programadores pueden diseñar sistemas más flexibles y escalables.

📦