Bienvenida e Introducción

1

¿Por qué aprender Programación Orientada a Objetos?

2

¿Qué resuelve la Programación Orientada a Objetos?

3

Paradigma Orientado a Objetos

4

Lenguajes Orientados a Objetos

5

Instalando Visual Studio Code

6

Diagramas de Modelado

7

Qué es UML

Orientación a Objetos

8

Objetos

9

Abstracción y Clases

10

Modularidad

11

Analizando Uber en Objetos

12

Reto 1: identificando objetos

Programación Orientada a Objetos. Análisis

13

Clases en UML y su sintaxis en código

14

Modelando nuestros objetos Uber

15

¿Qué es la herencia?

16

Aplicando Herencia a nuestro proyecto Uber

17

Reto 2: analicemos un problema

Clases, Objetos y Método Constructor

18

Creando nuestras carpetas iniciales para el curso

19

Definiendo clases en Java y Python

20

Definiendo Clases en JavaScript

21

Objetos, método constructor y su sintaxis en código

22

Objetos. Dando vida a nuestras clases en Java y Python

23

Declarando un Método Constructor en Java y JavaScript

24

JavaScript orientado a objetos, lo más nuevo

25

Declarando un método constructor en Python

Herencia

26

Aplicando herencia en lenguaje Java y PHP

27

Solución del reto de herencia en PHP

28

Aplicando herencia en lenguaje Python y JavaScript

29

Otros tipos de Herencia

30

Reto 4

Encapsulamiento

31

Encapsulamiento

32

Encapsulando atributos en Java

Polimorfismo

33

Generando polimorfismo en Java

34

Generando polimorfismo en PHP

Cierre del curso

35

El Diagrama UML de Uber

36

Conclusiones

37

Bonus: Qué es la Programación Orientada a Objetos

Curso de Programación Orientada a Objetos: POO

Curso de Programación Orientada a Objetos: POO

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

El Diagrama UML de Uber

35/37

Lectura

Este es el diagrama que finalmente obtuvimos, aquí solo faltaría añadirle los atributos que posee cada clase.

Captura de pantalla 2019-01-21 a la(s) 3.20.10.png

Recopilemos todo lo que hemos aprendido para explicar los últimos detalles.

En primer lugar notarás que tenemos 3 tipos de flechas:

Asociación

associacion.png

Como su nombre lo dice, notarás que cada vez que esté referenciada este tipo de flecha significará que ese elemento contiene al otro en su definición. Si recuerdas la clase Car, este contenía una instancia de Driver. La flecha apuntará hacia la dependencia.

car-driver.png

Herencia

herencia.png

Siempre que veamos este tipo de flecha se estará expresando la herencia.
En nuestro diagrama tuvimos al menos tres familias conviviendo. La dirección de la flecha irá desde el hijo hasta el padre.

Familia Car

Captura de pantalla 2019-01-24 a la(s) 1.24.30.png

Familia Account
Captura de pantalla 2019-01-24 a la(s) 1.24.13.png

Familia Payment
Captura de pantalla 2019-01-24 a la(s) 1.24.42.png

Composición

composicion.png

Pasemos a una de nuestras piezas claves, pues notarás en el centro del diagrama la clase Trip que está vinculada a User, Car, Route y Payment. La composición va a significar una asociación entre estas clases con la diferencia de que para que esta clase pueda vivir forzosamente necesita a las demás. Es decir que estas clases son obligatorias para que la clase Trip pueda existir, esta dependencia obligatoria podríamos expresarla en el método constructor de la clase Trip, pues para que un objeto pueda ser creado dependerá de que los demás existan.

Captura de pantalla 2019-01-24 a la(s) 1.46.08.png

Esta clase Trip poseerá la lógica más fuerte del negocio aquí será donde se concentrarán la mayor cantidad de clases.

Esto es todo nuestro diagrama de clases, que quedó totalmente expresado en nuestro proyecto.

Aportes 152

Preguntas 13

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Hice un diagrama UML integrando las propiedades de cada clase, si identifican un error por favor comenta. Les dejo el template y el sitio donde pueden crear el suyo y añadir nuevas clases, propiedades y comportamientos.
-Template
-Sitio para editar template (select open existing diagram)

Me hubiese gustado ver como se desarrolla la clase trip

Alguien mas lo leyo con la voz de ana?

Creo que hay un error en lo que se explicó. Especialmente a la hora de crear un Objeto de Tipo “Driver” dentro de la clase “Car”.

En el diagrama UML se denota claramente que en la clase “Car” el Objeto debe ser de tipo “Driver” no como se realiza en el ejercicio que lo ponen de tipo “Account”.

La relación por asociación se dá entre la clase “Car” y la clase “Driver” no entre la clase “Car” y la clase “Account”.

Lo hice correctamente, siguiendo el DML y me funcionó perfecto. Si lo revisan se darán cuenta que lógicamente sería correcto.

En mi opinión la forma en que la profesora lo hizó no dió hubo problema semanticamente hablando, porque al final la clase “Driver” no tiene ningún atributo local, sino que todos los que posee los hereda de “Account”.

Aún así si alguien me puede ayudar en darme una razón de por que la profesora lo hizo asi, estaría agradecido de leer otra opinión, pero a mi parecer la clase “Car” debería quedar así:

//---------------- CAR CLASS ----------------
public class Car 
{
    private Integer id;
    private String license;
    private Driver driver;
    private Integer passengers;

    //----------- CONSTRUCTOR ----------- 
    public Car(Driver driver, String license)
    {
        this.driver = driver;
        this.license = license;
    }

¿Y polimorfismo en PHP? Esto es lo mismo que la clase 7. ¯_(ツ)_/¯

Por si no queda clara la diferencia entre asociación y composición: enlace

Alguien me puede decir, como se llama el programa donde hacen esos diagramas?

En este video se explica los diagrama de clases UML.

Enotnces, aplicando las nuevas flechas, el UML de adopción, ¿Podría ser algo así?

Excelente curso 😃 pero falto la clase de PHP que comento en el video anterior y ojala se hubiera visto como funcionaba la clase Trip.

✨ La teoría y la práctica permiten adquirir conocimientos de manera más eficiente. Está sección es un reflejo de la misma.

vientos ya con eso me lo aviento en JS.

Por favor, comentar, criticar, sugerir:

Falto la ultima clase de php :’(

gracias resumida y excelente explicación

Un buen curso, la explicación fue excelente.
En lo personal me hubiera gustado ver en acción la creación de Trip, para tener el ejercicio completo.
Saludos.

La dinámica fue interesante de como partiste de tomar un caso de la vida real y lo llevaste al modelo de Programación Orientada a Objetos.
Se disfruto mucho del aprendizaje que se obtuvo durante las clases.

Aun estoy intentando entender la explicación de este capitulo al 100%, sobre la flecha composición, tomando en cuenta que la clase Trip no la aplicamos. El resto de capítulos estuvo claro.

Por qué el vínculo entre Trip y User es distinto al vínculo con las otras clases?

Excelente! Ann soy tu fan 😃

Tengo una duda: Segun la parte del diagrama en la clase trip y el uso de la composición con los otros elementos, ¿deberíamos hacer lo mismo con la clase Car y Driver, no?. Pues, no podemos crear un Car sin crear un driver, supongo que eso indica la relación

Excelente diagrama.

Gracias esta entendible.

¿Alguien sabe si esto de los diagramas UML es aplicado en el campo profesional o solo es con fines didácticos?

Excelente información.
Muchas Gracias a la profesora

Diagram UML

Al principio hice mi diagrama UML siguiendo la explicación básica que nos dieron en el curso, sin conocer el diagrama que nos mostro despues Anahi. Al parecer mi entendimiento estaba en lo correcto.

La dinámica fue interesante de como partiste de tomar un caso y lo llevarlo al modelo de Programación Orientada a Objetos.
Se disfruta mucho del aprendizaje que se obtuvo durante las clases.

🤖

Y la implementación de Trip?
la resolución de lo inconcluso ?
la codificación en el resto de lenguajes ?
y el resto de puntos dentro de lo que es la POO ??

==> sinceramente un curso incompleto y muy improvisado.
A mejorar o cambiar de profe, temario y ejemplos.

…
Por cierto, Car y Trip sería Composición ???

Tengo una GRAN DUDA. Yo he hecho todas las Clases del curso sin salytarme ninguna, y en ningún momento he visto la implementación de Trip
¿Qué paso ahí?

Entendido

Muy buena informacion. 👍

Excelente clase, de verdad ayudo mucho para que comprenda mejor la POO y ahora puedo ayudar más a mis amigos explicándoles. Cada día de clases en Platzi siento que aprendo mejor aquí que en mi universidad

Con qué programa se puede hacer diagramas UML?

Me gusto, muy buena explicación

Que buen curso 😄

Entendido!

Me gustó este ejemplo de Uber, el diseño de los diagramas al principio parecía confuso, sin embargo, conforme fue progresando el curso hasta ahora se entiende de manera muy fácil como se desglosa cada clase y qué función tiene tal clase.
Usar UML en este ejemplo me ayudó a entender más aún este tema.

¿Cuál es la diferencia entre la relación de Car y Driver con la relación de Car con Trip?

Lo pregunto porque en la definición de Car pusimos en su constructor como obligatorio el atributo de Driver esto no lo convertiría conceptualmente en una Composición en lugar de una Asociación?

Excelente!
Muy buen contenido, excelente explicación y aprendí que es lo más importante
Gracias

Muy didáctica la clase.!!

Justo quería ver una clase como Trip pero explicado más detallado jaja

Se debería de incluir una clase donde se explique la herramienta adecuada para realizar este mapa UML

Sigo teniendo dudas sobre Agregación, la diferencia con Composición

Buena clase y resumen de lo visto

Con esta ultima leccion me quedo clara la composicion 😄

Muchas gracias por todo!

Bien explicado con el diagrama UML

Queda mas claro el diagrama y sus asociaciones.

Hola

Estaba esperando que en esta lección, nos hablaran de aplicar polimorfismo con PHP, me perdí una lección?
Estoy confundido.

Agradezco si me pueden orientar.

Mil gracias

Excelente explicación concreta y sencilla.

Cool!

Excelente resumen! gracias!

Super claro!

Genial. Entonces solo me queda implementar la clase Trip y su constructor.

Excelentisimo el diagrama UML 😄

En general cuando analizamos un proyecto, para ver el corazón del mismo, nos conviene dar un vistazo en el diagrama donde estén apuntando las flechas de composición?

Excelente explicación

Excelente material.

¿Cual es la diferencia de si reemplazamos las clases Padre por interfaces?

Excelente

En terminos generales bien, aunque siento que sería bueno completar el proyecto aunque sea en un lenguaje.

Super bien explicado

genial

Bien Explicado.

¡Muchas gracias! Tenía muchas dudas sobre composición 😃

Muy poco para que se acabe este curso 😦

Excelente resumen UML Uber

Excelente!!!

buen curso, me quede toda la parte fnal del curso desde herencia, ya que veniamos a un ritmo, luego nos pasamos a crear los codigo en diferentes lenguajes, y luego fue retomando la teoria, hay ya me perdi, y lo ultimo lo entendi pero no sabria aplicarlo :I, toca volverlo a ver

muy claro el diagrama y el modelo de el negocio Uber, gracias

Excelente Explicación

Estupenda explicación

Excelente

Muchas gracias por el resumen sobre las relaciones entre las clases instructora Anahí.

Excelente resúmen.

Siempre es agradable tener más claro conceptos que en un principio estaban confusos. Gran curso!

Muy bueno repasar los conceptos, con cosas tan tangibles al momento de como aplicarlas a un proyecto es una forma potente de enseñar!

¿Hay forma de generar de forma automática un programa orientado a objetos desde un diagrama UML ?

Sin duada, con estos conceptos tan importantes, será más fácil aplicando en programación.

Buen resumen!

dos puntos por terminar de leer :v

Excelente resumen

dos puntos por terminar de leer :V

Listo

Excelente

Excelente resumen del proyecto.

¿Cómo quedaría la clase trip?

Excelente diagrama.

Buen aporte para finalizar 😃

Clarísimo. Gracias

ratos y al de php y js :v rayos :v

Todo entendido! 😃

excelente definición

increíble!!

😄

Gracias.