No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Programaci贸n orientada a objetos

8/21
Recursos

La programaci贸n orientada a objetos (POO) se basa en el concepto de objeto. Un objeto es una abstracci贸n de una entidad que posee datos en forma de propiedades o atributos, y procedimientos en forma de m茅todos. Por ejemplo, si vemos a un humano como un objeto, un humano tiene propiedades como su altura o color de cabello, as铆 como m茅todos como leer, escribir, comer, etc.

El primer lenguaje orientado a objetos fue Simula. Otros lenguajes orientados a objetos son C++, C#, PHP, Ruby, Python, etc.

Conceptos principales de la POO

Ya hablamos del concepto de objeto. Ahora introducimos otros conceptos fundamentales dentro de la programaci贸n orientada a objetos.

Clases

Una clase es un molde o f谩brica de objetos. En una clase se definen las propiedades y m茅todos que pueden tener un objeto. Se dice que un objeto es una instancia de una clase. Cuando se crea un objeto a partir de una clase, se definen los valores de las propiedades del objeto.

Propiedades

Las propiedades son caracter铆sticas que distinguen un tipo de objeto de otro, pero que var铆an entre objetos. Por ejemplo, los objetos de tipo humano pueden tener distintos colores de cabello, pero la propiedad 鈥渃olor de cabello鈥 es una que existe en todos los humanos (en los calvos esta propiedad valdr铆a null).

M茅todos

Los m茅todos son acciones o procedimientos que puede llevar a cabo un objeto. Por ejemplo, si un profesor fuera un objeto, un m茅todo del profesor ser铆a 鈥渄ar clase鈥.

Pilares de la POO

La programaci贸n orientada a objetos se fundamenta en 4 pilares. Es importante entender estos pilares, ya que la POO es el paradigma m谩s utilizado dentro del desarrollo de software.

Abstracci贸n

La abstracci贸n se refiere a aislar las caracter铆sticas de un objeto. Se trata de conceptualizar objetos y cu谩les son sus caracter铆sticas

Herencia

La herencia permite que una clase herede propiedades y m茅todos de otra clase. Por ejemplo, la clase 鈥減erro鈥 hereda de la clase 鈥渁nimal鈥. En este caso dir铆amos que la clase 鈥減erro鈥 es hija de la clase 鈥渁nimal鈥.

Encapsulamiento

El encapsulamiento ayuda a aislar parte del c贸digo de una instancia. Esto permite que cuando sea llamada no altere su estado por accidente o por efecto colateral de los m茅todos o comportamientos de otros objetos con los que puede interactuar.

Polimorfismo

El polimorfismo significa que ante los mensajes o llamados que reciba una clase o una instancia los va a interpretar de una forma distinta a como lo har铆an clases o instancias distintas.

Ventajas y desventajas de la POO

Como cualquier paradigma de programaci贸n, la POO presenta varios pros y contras.

Ventajas

  • C贸digo reutilizable.
  • Reducci贸n de redundancia.
  • F谩cil de mantener.
  • Seguridad (mediante m茅todos, propiedades y clases privadas/protegidas).

Desventajas

  • Tama帽o (cuando una clase es muy general y tiene muchas clases hijas)
  • Esfuerzo (por la especificidad que requieren)
  • Velocidad del desarrollo (por el esfuerzo)

Conclusi贸n

La programaci贸n orientada a objetos es el paradigma m谩s utilizado gracias a que permite reutilizar el c贸digo de una manera segura y f谩cil. Es fundamental entender los conceptos y pilares de la programaci贸n orientada a objetos.

Contribuci贸n creada por: Ciro Villafraz con los aportes de Aaron Quiroga.

Aportes 58

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Ustedes no lo saben, pero tan solo con esta clase ya aprendieron la gran mayor铆a de los conceptos de programaci贸n orientada a objetos y ya lo pueden aplicar a cualquier lenguaje jaja, les dar铆a una explicaci贸n alternativa, pero este video habla por s铆 solo:
.

驴No est谩n invertidos los conceptos? El molde es la clase鈥 Los objetos son las instancias鈥 Y lo resalto porque al inicio no es tan f谩cil entender la abstracci贸n la Programaci贸n Orientada a Objetos, qu茅 es una clase, qu茅 es una instancia, etc.

  • Clase -> Persona (molde)
    • Objeto -> H茅ctor (instancia)
    • Objeto -> RetaxMaster (instancia)
    • Objeto -> Cristian (instancia)

Las clases que 鈥渉eredan鈥, igual, no son instancias, son clases que heredan de clases鈥

  • Clase -> Profesor hereda de Persona (molde)
    • Objeto -> Anah铆 (instancia)

Es tan cierto que es el paradigma m谩s usado que en Platzi hay MUCHOS cursos que lo abordan en diferentes lenguajes:

Abstracci贸n: aislar las caracter铆sticas de un objeto (identificar cada una de las caracter铆sticas). Se trata de conceptualizar objetos y cuales son sus caracter铆sticas

Herencia: Permite que de una clase o una instancia herede caracter铆sticas.

Encapsulamiento: ayuda aislar parte del c贸digo de una instancia o una clase, de manera que cuando sea llamada no altere su estado por accidente o por efecto colateral de los m茅todos o comportamientos de otros objetos con los que puede interactuar.

Polimorfismo: significa que ante los mensajes o llamados que reciba una clase o una instancia los va a interpretar de una forma distinta a como lo har铆an clases o instancias distintas.

En el Curso B谩sico de Programaci贸n que dicta Freddy hay una clase pr谩ctica completa sobre POO que es excelente. Es la clase de los Pakimanes, un juego (es sobre insertar im谩genes sin canvas), y el c贸digo es en JS y se ven claritos varios conceptos de POO.

Soy fan de su explicaci贸n con Legos

En los 煤ltimos a帽os ha sido bastante cuestionado este paradigma, ya sea porque est茅n parcializados por las bondades que ofrece la programaci贸n funcional, algunos fundamentos de sus detractores podr铆an decirse que son bastante razonables.
.
Comparto un post que me pareci贸 interesante. Object-Oriented Programming is The Biggest Mistake of Computer Science. Y una ilustraci贸n que lo resume un poco.
.

Me parece fascinante c贸mo hay una fuerte base de inspiraci贸n en la construcci贸n de estos lenguajes y elementos abstractos se ha dado a partir de entidades biol贸gicas y sus sistemas.
(respecto a la analog铆a de los objetos como celulas biol贸gicas de Alan Kay)

COBOL 2002
鈥 principios de 1990 se decidi贸 a帽adir la orientaci贸n a objetos en la pr贸xima revisi贸n total de COBOL. La estimaci贸n inicial era tener esta revisi贸n completa en 1997 y una ISO de CD (Comit茅 de redacci贸n) estuvo disponible en 1997. Algunos ejecutores (incluyendo Micro Focus , Fujitsu , Veryant y IBM ) present贸 orientado a objetos sintaxis basada en el 1997 o los otros proyectos de la revisi贸n completa. La final aprobado por la norma ISO (adoptado como norma ANSI por INCITS ) fue aprobado y puesto a disposici贸n en 2002

Quick Source: https://cobolcs.wordpress.com/2012/10/02/cobol-2002-y-cobol-orientado-a-objetos/

馃惐鈥嶐煉 La programaci贸n orientada a objetos permite manejar objetos, organizadas mediante clases.

Programaci贸n orientada a objetos

  • Contiene datos y c贸digo
  • El primer lenguaje fue Simula
  • Conceptos principales: clases, objetos o instancias, atributos y m茅todos

Pilares de la POO

  • Herencia: donde una clase puede heredar atributos o m茅todos de otra
  • Encapsulamiento: ayuda a aislar parte del c贸digo para que no se pueda afectar por accidente
  • Abstracci贸n: aislar las caracter铆sticas de un objeto (un cuerpo se compone de extremidades, torso y cabeza, a su vez la cabeza compuesta por distintas partes, etc.)
  • Polimorfismo: significa que ante un mismo evento las distintas clases generan comportamientos distintos

Pros

  • C贸digo reutilizable
  • Reducci贸n de redundancia
  • F谩cil de mantener
  • Seguridad

Cons

  • Tama帽o (cuando un objeto es muy general y tiene muchas clases hijas)
  • Esfuerzo (por la especificidad que requieren)
  • Velocidad del desarrollo (por el esfuerzo)
Creo que la POO es un gran ejemplo de c贸mo la programaci贸n es el resultado de una observaci贸n maravillosa al mundo y a las personas, c贸mo funcionamos, qu茅 hacemos y c贸mo lo hacemos. Mapas que seguimos plasmados en un paradigma.

en una conferencia el mismo ALAN KAY dijo:
鈥淟A VERDADERA PROGRAMACION ORIENTADA A OBJETOS NO EXISTE, NUNCA HA EXISTIDO, AUN ES TEORICA Y AUN NO LA HE DESSARROLLADO, LO QUE USTEDES LLAMAN P.O.O. PROGRAMACION ORIENTADA A OBJETOS ES OTRA COSA鈥

FUERTES DECLARACIONES!!!

el video de la conferencia esta en youtube鈥usquenlo.

La Programaci贸n Orientada a Objetos (POO) es un paradigma de programaci贸n que se basa en la creaci贸n y manipulaci贸n de objetos para resolver problemas. A continuaci贸n se presentan los conceptos principales de la POO:

  • Clase: es la plantilla o molde que define las propiedades y m茅todos comunes a un conjunto de objetos. Las clases son la base para la creaci贸n de objetos.

  • Objeto: es una instancia concreta de una clase. Cada objeto tiene sus propias propiedades y puede realizar acciones definidas por la clase.

  • Atributo: son las caracter铆sticas o propiedades que definen a un objeto. Cada atributo tiene un tipo de dato y un valor.

  • M茅todo: son las funciones o acciones que puede realizar un objeto. Cada m茅todo tiene un nombre, par谩metros y un valor de retorno.

  • Herencia: es un mecanismo que permite que una clase herede las propiedades y m茅todos de otra clase. La clase que hereda se llama subclase y la clase de la que se heredan las propiedades se llama superclase.

  • Polimorfismo: es la capacidad de un objeto de ser tratado como otro objeto distinto, pero que pertenece a la misma jerarqu铆a de clases.

  • Encapsulamiento: es un mecanismo que permite ocultar la implementaci贸n interna de un objeto y s贸lo exponer una interfaz p煤blica para interactuar con 茅l.

No se ha corregido esta clase, objeto y clases est谩n invertidos.

  • Clases

Las clases son plantillas que se utilizan para crear objetos con caracter铆sticas y funcionalidades espec铆ficas.

class Coche {
  constructor(marca, modelo, color) {
    this.marca = marca;
    this.modelo = modelo;
    this.color = color;
  }

  arrancar() {
    console.log(`El coche ${this.marca} ${this.modelo} ha arrancado`);
  }

  parar() {
    console.log(`El coche ${this.marca} ${this.modelo} se ha detenido`);
  }
}

En este ejemplo, hemos creado la clase Coche con tres propiedades (marca, modelo y color) y dos m茅todos (arrancar y parar).
.

  • Objetos
    Los objetos son instancias de una clase, es decir, son elementos creados a partir de una plantilla (clase) que tienen sus propias propiedades y m茅todos.
const miCoche = new Coche('Ford', 'Mustang', 'Rojo');

console.log(miCoche.marca); // 'Ford'
console.log(miCoche.modelo); // 'Mustang'
console.log(miCoche.color); // 'Rojo'

miCoche.arrancar(); // 'El coche Ford Mustang ha arrancado'
miCoche.parar(); // 'El coche Ford Mustang se ha detenido'

En este ejemplo, hemos creado un objeto miCoche a partir de la clase Coche. Hemos asignado los valores 鈥楩ord鈥, 鈥楳ustang鈥 y 鈥楻ojo鈥 a las propiedades marca, modelo y color respectivamente. Tambi茅n hemos llamado a los m茅todos arrancar y parar utilizando la instancia de la clase miCoche.
.

  • Propiedades
    .
    Las propiedades son las caracter铆sticas de un objeto que lo hacen 煤nico. En el ejemplo anterior, las propiedades de miCoche son marca, modelo y color.
console.log(miCoche.marca); // 'Ford'
console.log(miCoche.modelo); // 'Mustang'
console.log(miCoche.color); // 'Rojo'

En este ejemplo, estamos accediendo a las propiedades de miCoche mediante la notaci贸n de punto (.). Esto nos permite obtener el valor de cada propiedad.
.

  • M茅todos
    .
    Los m茅todos son las funciones que est谩n asociadas con un objeto y que nos permiten realizar acciones con ese objeto. En el ejemplo de la clase Coche, los m茅todos son arrancar y parar.
miCoche.arrancar(); // 'El coche Ford Mustang ha arrancado'
miCoche.parar(); // 'El coche Ford Mustang se ha detenido'

En este ejemplo, estamos llamando a los m茅todos de miCoche utilizando la notaci贸n de punto (.). Esto nos permite ejecutar la funci贸n asociada con el objeto.

Pilares de la POO:

Abstraci贸n:
Aisla las caracter铆sticas de un objeto.


Herencia:
Permite que de una clase o de una instancia se pueda tener otra clase o instancia hija que va a heredar atributos de la misma.


Encapsulamiento:
Ayuda a aislar u ocultar parte del c贸digo de una instancia o de una clase. Esto con el prop贸sito de que cuando sea llamada no altere su estado por accidente o por efecto colateral de los m茅todos o comportamientos de otros objetos con los que puede intetarctuar.


Polimorfismo:
Significa que ante los mensajes o los llamados que reciba una clase o una instancia los va a interpretar de una forma distinta a como har铆an clases o instancias distintas.

Me espanto, la clase la vi hace semana y media y despu茅s la volv铆 a ver y me apareci贸 esto, si me C4G3.

En resumen:

La programaci贸n orientada a objetos se basa en el concepto de crear un modelo del problema de destino en sus programas. La programaci贸n orientada a objetos disminuye los errores y promociona la reutilizaci贸n del c贸digo. Python (que es mi lenguaje favorito 馃榿) es un lenguaje orientado a objetos.

Excelente clase!

cuando hablan de POO, clase, instancia, encapsulamiento y polimorfismo, me acuerdo del canal de youtube "pildoras inform谩ticas" de all铆 aprendi esos conceptos. xD

Me espant贸 horrible la tipa que sali贸 a dar la aclaraci贸n jajaja

Apareci贸 la corregidora de Platzi 馃槂

Ya lo vi m谩s abajo, pero creo que es importante destacar y tener muy en cuenta que se invirtieron los conceptos clase y objeto. La clase es el molde del cual se fabrican los objetos, y son los objetos a los que se le llama instancia. La clase es el humano, el objeto es una persona espec铆fica. Las caracter铆sticas o atributos del humano est谩n definidas en la clase, pero es en el objeto en donde se le dan los valores que describen a cada persona en particular

aqu铆 un peque帽o ejemplo de lo que es una clase, un objeto, atributo y m茅todo 馃槃

Excelentes ejemplos!

Python tambi茅n permite la programaci贸n orientada a objetos, que es un paradigma de programaci贸n en la que los datos y las operaciones que pueden realizarse con esos datos se agrupan en unidades l贸gicas llamadas objetos.

En la POO se ve la importancia de tener claro sus pilares los cuales hacen referencia a la herencia, encapsulamiento, abstracci贸n y polimorfismo. Tambi茅n se debo conocer acerca de que lenguajes trabajan con POO para poder elegir bien a la hora de hacer un desarrollo.

La clase es la maqueta, las instancias de la clase son los objetos. Las clases efectivamente tienen m茅todos y atributos que le dan comportamiento y caracter铆sticas. Los objetos por su parte le dan valores a esos atributos y ejecutan los m茅todos, es decir, los objetos son las entidades del mundo real (cada una), siendo el concepto m谩s general la clase y m谩s espec铆fico el objeto. La clase podr铆a ser el Humano, o el Estudiante si se espera especificar con caracter铆sticas y atributos m谩s detallados como "c贸digo de estudiante"... un objeto ser铆a un solo humano o un solo estudiante, que tiene un valor espec铆fico para el c贸digo de estudiante que le pertenece.

Si quieren tener un ejemplo practico sobre este tema de clases, les recomiendo ver la clase 21 del curso gratis de programaci贸n b谩sica que imparte Freddy, ah铆 van a ver como se construye una clase

Pilares de la POO:

Abstraci贸n:
Aisla las caracter铆sticas de un objeto.

Herencia:
Permite que de una clase o de una instancia se pueda tener otra clase o instancia hija que va a heredar atributos de la misma.

Encapsulamiento:
Ayuda a aislar u ocultar parte del c贸digo de una instancia o de una clase. Esto con el prop贸sito de que cuando sea llamada no altere su estado por accidente o por efecto colateral de los m茅todos o comportamientos de otros objetos con los que puede intetarctuar.

Polimorfismo:
Significa que ante los mensajes o los llamados que reciba una clase o una instancia los va a interpretar de una forma distinta a como har铆an clases o instancias distintas.

Tengo entendido que al crear una clase se est谩 creando m谩s especificamente un tipo de dato, sin embargo este dato tiene metodos los cuales son el compotamiento que definimos en este tipo de dato que hemos creado.

Por ejemplo la clase humano seria el molde del dato de tipo humano que tiene atibutos como los que se mencionan en esta clase.

  • Color de cabello
  • Altura
  • Edad
  • Nombre

ETC鈥

Y los metodos en este caso el comportamiento seria:

  • Comer
  • Dormir
  • Caminar
  • Correr

ETC鈥

Sin duda alguna la programaci贸n orientada a objetos es mi paradigma favorito!.

PARADIGMA DE PROGRAMACI脫N ORIENTADA A OBJETOS
.
La programaci贸n por procedimientos resolvi贸 muchos problemas de la programaci贸n imperativa.
.
Cuando existen programas con cientos de procedimientos a los cuales se debe hacer una llamada , se ejecutan las lianas de c贸digo, sale del procedimiento e ingresa a uno nuevo. As铆 sucesivamente hasta completar el objetivo del programa. Lo que lo hace muy complejo.
.
Hoy en d铆a las aplicaci贸n WEB y m贸viles tiene m煤ltiples botones de acci贸n que el usuario al interactuar con ellos van a ejecutar c贸digo. Esto a trav茅s de programaci贸n por procedimientos seria sumamente complejo si se depende de un procedimiento principal.
.
En este contexto surge la programaci贸n orientada a objetos
.
Contiene datos y c贸digo
.
Datos en forma de campos. (atributos o propiedades)
C贸digo en forma de procedimientos. (m茅todos)
.
Se origina a final de los a帽os 50s cuando se hablaba de objetos en el MIT, siendo citados despu茅s por Alan Kay.
.
鈥淧ens茅 en los objetos como c茅lulas biol贸gicas y/o computadoras individuales en una red, capaces de comunicarse con mensajes.鈥

Las slides estaban geniales!!!

Programaci贸n orientada a Objetos:
En definitiva una Clase es una Plantilla que define Atributos y m茅todos que son comunes para todos los objetos de cierto tipo y permite crear cualquier n煤mero de objeto (crear Instancia de la Clase).

Les comparto un video donde de igual forma explican la clase, pero con ejemplos diferentes, espero les sea de utilidad:

nombre: Programaci贸n Orientada a Objetos (POO): Abstracci贸n, Encapsulamiento, Herencia, Polimorfismo

Link: https://youtu.be/SI7O81GMG2A

Programaci贸n orientada a objetos = P.O.O
*Basada en objetos -contiene datos y c贸digo-
.-Datos en forma de campo(atributos y propiedades)
.-C贸digo en forma de procedimientos(m茅todos)

鈥淧ens茅 los objetos c贸mo c茅lulas biol贸gicas y/o computadoras individuales en una red capaces de comunicarse con mensajes鈥 .-Alan Kay

*Simula es el primer lenguaje orientado a objetos, introduciendo conceptos como -clases, -objetos, -herencia, -enlaces din谩micos.

*En la actualidad hablar de P.O.O == .-Objetos, .-Clases, .-Propiedades, .-M茅todos.
*Pilares de P.O.O = Son cuatro:
.-Herencia(hace de una clase/instancia se pueda generar otra clase/instancia hija conservando propiedad y atributos)
.-Encapsulamiento(ayuda a encapsular/aislar parte del c贸digo de una instancia o una clase, con el prop贸sito que cuando sea llamada no altere su estado por accidente con los elementos que puede interactuar)
.-Abstracci贸n(Aislar caracter铆sticas de un objeto)
.-Polimorfismo(Refiere que ante los llamados/mensajes que reciba una instancia los va a interpretar de forma distinta a como lo hac铆an clase o instancia distintias.)

*Ventajas: .-C贸digo reutilizable, .-Reducci贸n de redundancia, .-F谩cil de mantener, .-Seguridad.
*Desventajas: .-Tama帽o, .-Esfuerzo invertido
ej: Simula, Java, C++, Python, Ruby, PHP

Es interesante de vez en cuando el conocimiento de POO. Sabia de como se emplean pero no la forma de pensarlo antes de ejecutar tu codigo. Es algo bueno porque la verdad quisiera aprender de estos con python.

Ventajas de la Programaci贸n Orientada a Objetos

Pilares de la Programaci贸n Orientada a Objetos

Origen de la Programaci贸n Orientada a Objetos

Un saludo a todas las instancias que est谩n por aqu铆 estudiando

Si un objeto es muy general entonces no esta correctamente abstraido.

Me encanta como describe las caracterisiticas de la POO con las figuras de lego, proque siempre los he entendio de esta forma.

  • Las clases son los moldes de los legos.

  • Los objetos son los ladrillos de los legos.

  • Abstracci贸n es como cada ladrillo tiene sus propias caractersiticas.

  • La herencia es como los ladrillos comparten caractersiticas similares.

  • Encapsulamiento es como los ladrillos estan separados de modo que no siempre encajan de la misma manera con otro bloque especial.

  • Y el polimorfimso de los ladrillos pueden construirse para hacer diversas figuras.

Paradigma orientado a objetos o POO

Orgien en Simula 6. Para hacer simulaciones. Creado por Ole Johan Dahl y Kristen Nygaard. Smalltalk desarrollado en Simula que a su vez es una versi贸n escrita sobre Basic.

Caracteristicas de la POO

  • Abstracci贸n Denota las caracteristicas escenciales de un objeto, donde se captura su comportamiento. Cada objeto en el sistema sirve como un modelo de un agente abtracto que puede realizar trabajo, informar, cambiar su estilo y comunicarsecon otros objetos. Los procesos, funciones y metodos tambien pueden ser abtraidos.

  • Encapsulamiento Reunir todos los eleetos que se concideren pertenecientes a una misma entidad, con el mismo nivel de abtracci贸n.

  • Principio de ocultaci贸n Cada onjeto esta aislado del exterior. Cada objeto expone una interfaz a otro objetos, que especifica como pueden interactuar con otros objetos. El aislamiento protege las propiedades de un objeto contra modificaci贸n de quien no tenga contra la modificaci贸n de quien no tenga derecho a acceder a ellas. Solamente los propios metodos intenros del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado internos de un objeto de manera inesperada.

  • Polimorfismo Comportamiento diferentes, asociados a objetos diferentes pueden compartir el mismo nombre. De esta forma reutiliza el comportamiento correspondiente al objeto que se esta usando.

  • Herencia Las clase se relacionan entre si. Formando una jerarqu铆a de casificaci贸n. Los objetos heredan propiedades y comportamiento de todas las clases a las que pertenecen.
    La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes.
    Esto puede compartir (y extender) su comportamiento sin tener que volver a implementarlo.
    Esto suele hacerse habitualmente agrupnando los objetos en clases y estas en arboles que reflejan el comportamiento com煤n. Cuando un objeto hereda de m谩s de una clase se dice que hay 鈥淗erencia multiple鈥.

En cuesti贸n de conceptos un objeto no es un molde, un objeto es lo que se fabrica con el molde, el objeto es la instancia de una clase y la clase no es una instancia, la clase al ser el molde es la generadora de objetos o de instancias de si misma, la clase es una generadora de objetos, creo que quiere decir es: 鈥渓a clase humano, la cual pueden surgir objetos/instancias鈥

Me gust贸 mucho su ejemplo de que un m茅todo suyo es ser profesor de platzi, al menos yo ya los entiendo pero para alguien que no sabe de estas cosas ese ejemplo fue perfecto. excelentes clases profe.

Chicos, si es que tal vez no llegaron a entenderlo del todo (como es mi caso) pueden revisar estos 2 videos:
1.https://www.youtube.com/watch?v=DlphYPc_HKk
2.https://youtu.be/Mi_sRAfs7TE
Espero les ayude a comprender!

Vayas ventajas de POO:
C贸digo reutilizable.
Reducci贸n de redundancia.
F谩cil de mantener.
Seguridad

me record贸 al chavo del 8 ese nombre de simula xd perd贸n pero nunca se me va a olvidar cual fue uno de los primeros en usar poo

En este texto entenderemos un poco lo que es la programaci贸n orientada a objetos, este tipo de programaci贸n tiene como pilares 4 conceptos:

  • Herencia
  • Polimorfismo
  • Abstracci贸n
  • Encapsulamiento
    Estos 4 pilares es lo que nos permiten pensar en un objeto programable.
    Por ejemplo,
    Hablemos de programar a un profesor. 驴Qu茅 es un profesor? Un humano que ense帽a temas espec铆ficos a otros humanos. Entonces, sabemos que un profesor, primero es un humano, por lo que para programar una computadora que se comporte como un profesor desde el paradigma orientado a objetos, hay que crear una clase Humano. Aqu铆 entramos en el concepto de clase, pensemos en esto como el molde de los objetos que se crear谩n a lo largo de nuestro programa. Entonces, 驴qu茅 es un humano?, es una pregunta bastante grande y podr铆amos decir que bastante compleja de responder, pero para la finalidad de este texto, pensemos que el humano es un animal que come, respira, se reproduce, piensa, se comunica, se mueve e interact煤a con el mundo a trav茅s de estos m茅todos mencionados y aparte tiene otros m茅todos. Utilicemos los m茅todos de comunicaci贸n y movimiento para nuestra clase humano. La clase humano tendr谩 dos m茅todos principales, comunicarse y moverse en el espacio. Entonces, si pensamos en lo que hace un profesor, hace lo mismo que la clase humano, pero tiene otros m茅todos que fungen como filtros para la informaci贸n que llegar谩 a los m茅todos del humano, pero los comparte, es decir los hereda. Entonces, pensamos en un profesor como un objeto que hereda las caracter铆sticas del humano (en este caso, nuestro humano que m谩s bien parece un NPC, tiene la capacidad de comunicarse y de moverse en el espacio). Entonces, nuestro profesor tendr谩 otros m茅todos, por ejemplo, estructurar un tema, definir una gu铆a para el tema, y para cada punto de esa gu铆a tendr谩 un mensaje; por ponerlo de forma simple, entonces, el profesor primero estructura el tema, hace la gu铆a y por 煤ltimo de la herencia de la clase humano, comunica el mensaje que quiere dar para cada punto de la gu铆a. Lo que hicimos arriba, fue tambi茅n parte del concepto de abstracci贸n, pensemos en esto como una forma de reducir a conceptos individuales un objeto complejo. Por otro lado, el encapsulamiento es la forma en la que nosotros ocultamos ciertas caracter铆sticas o m茅todos para que s贸lo sean accesibles, desde la clase, por ejemplo, volvamos a la clase humano. Pero agreguemos el m茅todo respiraci贸n, nosotros queremos que la respiraci贸n siempre suceda, porque si no sucede, nuestro humano, muere, entonces ninguna clase que herede la clase humano, ni ninguna parte de nuestro programa queremos que acceda para modificar la respiraci贸n del humano, porque esto lo pondr铆a en riesgo. Por ultimo el polimorfismo, es lo que nos permite crear instancias de nuestra clase, y enviarles informaci贸n que sint谩cticamente es igual, y esta nos responder谩 de manera diferente. Y esto si lo pensamos con los humanos, tendr铆amos un m茅todo que se llame procesamiento de mensajes, este m茅todo dado que todos los humanos tenemos una forma diferente de pensar, de ver las cosas y de vivir, aunque recibamos el mismo mensaje, responder铆amos diferente. Claro que esto ser铆a infinitamente complejo de programar, sin embargo, funciona para la explicaci贸n del concepto.
    Espero que les haya servido, o gustado este texto, si tienes alg煤n comentario al respecto, en el que consideres que puedes aportar, por favor hazlo, para que yo y otros estudiantes podamos mejorar.

Esas caracter铆sticas de programaci贸n orientada a objetos son clave conocerlas, en la mayor铆a de entrevistas, por no decir todas, te preguntan sobre esto.

Dejo videito

Muy bueno.