master-wiki/01. Projects/Coding Mentorship/Temas/Programación orientada a objetos.md
Alexander Navarro 07e7acedc0 Update from obsidian - thinkpad
Affected files:
.obsidian/plugins/obsidian-advanced-slides/data.json
.obsidian/plugins/obsidian-linter/data.json
.obsidian/plugins/obsidian-omnivore/data.json
.obsidian/types.json
01. Projects/Coding Mentorship/Temas/Image.md
01. Projects/Coding Mentorship/Temas/Programación orientada a objetos.md
01. Projects/Coding Mentorship/Temas/ejemplo_OOP.png
2024-05-14 18:43:23 -04:00

4.9 KiB

width height date_created date_modified
1366 768 Sunday, May 12th 2024, 12:25:15 pm Tuesday, May 14th 2024, 6:43:12 pm

Programación Orientada a Objetos


¿Qué Es?

La programación orientada a objeto es una forma de programar. En otras palabras, es un paradigma de la programación.


¿Para Qué Sirve Un Paradigma De Programación?

  • Nos provee una manera de trabajar.
  • Nos da una manera de estructurar el código.
  • Nos facilita la representación de cosas y situaciones del mundo real.
  • Ayuda a encontrar y prevenir errores.

note: mencionar otros paradigmas:

  • imperativo: Darle las instrucciones sobre como hacer lo que queremos,
  • declarativo solicitar el resultado deseado
    • funcional en el que el resultado deseado se declara como el valor de una series de aplicaciones de función,
    • lógico en la que el resultado deseado se declara como la respuesta a una pregunta sobre un sistema de hechos y reglas,
    • matemático en el que el resultado deseado se declara como la solución de un problema de optimización
    • reactivo en el que se declara el resultado deseado con flujos de datos y la propagación del cambio

Características De POO

  • Abstracción
  • Encapsulación
  • Herencia
  • Polimorfismo

note: no entrar en detalle, es irrelevante mientras no se entiendan las bases.


Principios SOLID

  • The Single Responsibility Principle
  • The Open-Closed Principle
  • The Liskov Substitution Principle
  • The Interface Segregation Principle
  • The Dependency Inversion Principle

note: nuevamente no entrar en detalle, es irrelevante mientras no se entiendan las bases. referencia


¿Qué Es Un Objeto?

Un objeto es una representación de una cosa, persona o elemento de la vida real, junto con sus características y comportamientos.


Components De Un Objeto

Término Común Término Informático
Características Atributos
Comportamientos Métodos

Ejemplos

!01.%20Projects%2FCoding%20Mentorship%2FTemas%2Fejemplo_OOP.png

note: "La POO no es difícil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de manera que la forma de hacer las cosas puede set diferente según el programador."


Clases Vs Objetos

Las clases son los "moldes" o nuestra "plantilla" para generar objetos.

Aquí se definen los atributos y métodos que utilizaremos.

note: se puede hacer el símil que una clase es un "tipo de dato".


Clases Vs Objetos

Los objetos son las instancias creadas a partir de una clase.

Aquí crearemos un nuevo objeto rellenando la información que nos pide la clase.

note: dar ejemplo de una ficha clínica.


Constructores

Son un método especial que se llama al memento de crear una nueva instancia de una clase. Su objetivo es inicializar los atributos de la clase.

note:

  • "abstraer el como un objeto se crea"
  • "es responsabilidad de un objeto como se crea"

Constructores

  • Tienen el mismo nombre de la clase.
  • No tienen tipo de retorno.
  • Deben ser públicos.
  • Pueden existir múltiples constructores para una misma clase.

note: esto es el general y no siempre es así, un singleton tiene un constructor privado.


Ejemplos

class Perro:
    def __init__(self, nombre, color_pelo, edad):
        self.nombre = nombre
        self.color_pelo = color_pelo
        self.edad = edad

    def parrandear(self):
        print("Cuando Mario Hugo no está…")

instancia_de_perro_1 = Perro("Duque", "negro y café", 3)
instancia_de_perro_1.parrandear()

Ejemplos

class Perro {
	String nombre;
	String color_pelo;
	int edad;

	public Perro(String nombre, String color_pelo, int edad) {
		this.nombre = nombre;
		this.color_pelo = color_pelo;
		this.edad = edad;
	}

	public void parrandear() {
		System.out.println("Cuando Mario Hugo no está…");
	}
}

public class Ejemplo_java {
    public static void main(String[] args) {
		Perro instancia_de_perro_1 = new Perro("Duque", "negro y café", 3);
		instancia_de_perro_1.parrandear();
    }
}

Fin :3