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

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

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

Modelando nuestros objetos Uber

14/37
Recursos

Aportes 164

Preguntas 23

Ordenar por:

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

En UberX y UberPool sería una buena idea poner un objeto como “Uber” y que tuvieran el atributo “Tipo” en donde se diferencia entre UberX y UberPool

Existe una aplicación open source que tiene integrados modelos UML llamada diagrams.net. Capaz les resulta útil.

Velocidad 1,25

Me estaba preguntando por qué no mejor usar una clase llamada “Car” que contenga estos objetos comunes, y que las clases de tipos de autos de Uber heredaran de esa clase Car, o podriamos pasarselas en algún constructor… u otra alternativas es que Car sea una interfaz para Uber… hmmm hay tantas formas de hacerlo jaja

Si vienes del curso de Base de Datos, te puede ayudar la metodología de 9 pasos con Barker.

También se puede crear la clase person. Con eso user y driver heredan de person.

Considero que faltaría la calificación que tiene un conductor en el Objeto “driver” sería un atributo como +score

Si ya tienen Visual Studio Code, pueden descargarse la extensión drawio, que les permite dibujar diagramas UML 😁

12. Mis apuntes sobre: “Modelando nuestros objetos Uber”

Les comparto el diagrama que hice.

✨ En esta lección vimos en acción a la abstracción, este nos permitió determinar las propiedades y comportamientos más significativos de los objetos.

Lo que se podría hacer es una clase auto donde estén todos los atributos generales, y que los mismos hereden atributos y comportamientos. Seguramente lo hagamos en alguna de las próximas clases.

Hola¿Alguien me puede decir que paso con el objeto Trip que explicó Anahí en la clase anterior? Tengo mucha curiosidad de como plantearía ese objeto conceptual

les recomiendo ver PRINCIPIOS SOLID.
https://devexperto.com/principio-open-closed/

Apuntes de la Clase:

Modelando nuestros objetos Uber

En mi caso con lo poco que e leido uniria los tipos de clasificaciones de uber y heredaria de una clase general y solo la especializaria para cada modelo en particular. Y tambien un buen analisis de nuestras clases y las relaciones entre ellas nos ahorra muchas horas de programacion ya que el metodo de empezar a programar sin diseñar nunca nos va a permitir ver todos los posibles escenarios y necesidades de la aplicacion.


En la sección de Archivos y Enlaces encontrarán las imagenes adjuntas de lo analizado esta clase 😉 👉

OBJETOS:
Los objetos siempre tendrán un identificador (id)
_
User
id
Name
document
email
password

Route
id
start [latitud, longitud] - arreglos
end [latitud, longitud] - arreglos

Driver
id
Name
document
email
password

Uber x
id
License
Driver
Passengers
Bland
Model

Uber pool
id
License
Driver
Passengers
Bland
Model

Uber black
id
License
Driver
Passengers
typeCarAccepted [] - arreglo
seatsMaterial [] - arreglo

Uber van
id
License
Driver
Passengers
typeCarAccepted [] - arreglo
seatsMaterial [] - arreglo

Card
id
number
cvv
date

Paypal
id
email

Cash
id

El siguiente paso es algo parecido a normalizar en una base de datos

OBJETO UBER: En lo personal pienso que para ahorrar codigo y hacerlo mucho mas factible a futuro deberia hacerse con una sola clase que trabaje como molde para crear cada tipo de uber, dependiendo de sus atributos y metodos.

Dos puntos por terminar de ver el vídeo :v

Para reforzar sus conocimientos en UML recomiendo el siguiente
http://descargavariable.blogspot.com/2018/01/aprendiendo-uml-en-24-horas-joseph.html

Muy buena la forma en que determino las características de cada objetivo instructora Anahí. Siguiendo el consejo de un instructor de Platzi, cuando estemos desarrollando la aplicación debemos recordar añadirle a los usuarios y conductores los atributos de Login y Username de esta forma se permite en el futuro los cambios de correo electrónico y nombre, sin necesidad de crear otro usuario o conductor. Además de seguridad extra.

Ahora con la Herencia eliminaremos la Redundancia de nuestro Análisis de Clases.

vi que no se hizo el análisis del objeto Trip.
creo que se seria este. corrijanme si hay algo mal o falto infomarcion

Trip:
User
Route
Date
Typer of Uber
Driver
Payment method
Amount

Este curso es más agradable en 1.5x

Tengo una pregunta:
¿Qué debo hacer primero para hacer el esquema de mi aplicación?

  • Definir los objetos y hacer el UML correspondiente
  • Diseñar primero la Base de Datos.
    Gracias.

Increible

que bueno que éste curso es más entendible con la profesora

¿Es necesario tener los atributos id, cuando el documento es único en cada persona?

Tambien se hubiera podido crear una clase Vehiculo el cual tenga los atributos licencia, pasajeros, marca y modelo, y otra clasa llamada Uber o TipoUber la cual tenga atributos referentes al tipo de afiliacion de Uber que tenga.
Para darle un manejo a el conductor y el clente, se crearia un objeto llamado Usuario que se relacion con un TipoUsuario el cual define el Usuario es cliente o es conductor

Excelentes explicaciones anahí salgado, explica muy bien y con pedagogía 😊

Al final te has hecho experta en autos XD

Excelente Profesora.

Sentía redundancia y al final Anahi dijo que lo solucionaría 😃
Me encanta el curso

una herramienta muy util para hacer diagramas

Falta el objeto conceptual TRIP, o en su defecto, ¿donde va?

En medio de pago efectivo sería un atributo la moneda verdad?

¡Muy buen ejemplo!

He usado Uber por mucho tiempo ya y no sabia que se podia pagar con paypal tambien, no solo aprendemos de POO sino que tambien de muchas otras cosas mas.

¿acaso no son redundantes las clases user y driver? son exactamente identicas. ¿Que sucede cuando una misma persona es en un momento conductor y en otro usuario? Creo que falta un indicador de tipo de usuario para saber si en el momento es usuario o conductor

veo que existe mucha redundancia.

Me parece o la profe se olvido el objeto “TRIP” ??? jejeje

Adjunto el diagrama !

en el caso de haber pensado en los tipos de uber como los atributos de un objeto “auto”, o en los tipos de pagos como objeto “pago”, obviamente estaríamos evitando repetir código

Dale me gusta a este comentario si previste que había redundancia y se puede abordar de una manera más compacta el diagrama 😄

Atributos: algunos conceptos
• Las clases tienen atributos que representan alguna propiedad de la clase que comparten todos los objetos de esa clase.
• Un atributo es una propiedad nombrada de una clase, que describe un rango de valores que puede tomar esa propiedad en las instancias. – Por ejemplo, nombre, edad o peso son atributos de objetos Persona.
• Cada nombre de atributo es único dentro de una clase, pero cada atributo tiene un valor para cada instancia de la clase. – Diferentes instancias de objetos pueden tener los mismos o distintos valores para un atributo dado. – La identidad implícita del objeto permite distinguir objetos en que todos los valores de los atributos sean idénticos

Pueden usar StarUML para el diagramado.

Alerta de spoiler: Se puede se puede ahorrar còdigo y eliminar redundancia haciendo una clase Auto, por ejemplo, y que esta clase tenga hijos (herencia): UberX, UberPool, UberVan. A su vez que estas clases implementen una interfaz para que cada una ejecute los verbos de forma distinta (polimorfismo).

Cuando definen la clase uber black, se podria poner la advertencia de los autos aceptados con sus caracteristicas especiales que lo diferencian de otros servicios de uber

GRAN ANALIZIS

Los ID son esenciales para a futuro poderlos meter en una base de datos y utilizarlos de esta forma

Seria correcto entonces tambien crear una clase Person y incluir user y driver, una clase uber y especificar cada modelo, y un objeto route.

Les comparto este repositorio que sirve de guía para el examen final, pues contiene las preguntas que se encuentran en el examen, la justificación y el video del curso donde se habla sobre eso. Espero y les sea de utilidad 😄.
Platzi-Test

Creo que los Uber deberían tener un atributo position:[] al igual que route con esto se podría ir actualizando la ubicación del Uber en el mapa.

Siendo Uber, yo pondría cellphone como un atributo necesario en user y driver

Mi diagrama:

Basado en algunos diagramas de los compas porque no sabia hacerlo al principio.

podríamos agregar un objeto pay que incluya los atributos tipos donde diferenciemos entre efectivo, credito o Paypal.

Esta clase me recordó mucho los diagramas de entidad relación de una base de datos.

Por ahí siento que otro atributo importante tanto para driver como user sería su número telefónico, que hoy en día sabemos que lo usan y es clave en el servicio, por lo demás de acuerdo.

del primer dibujo de las propiedades y elementos de los objetos involucrados en el servicio Uber se analiza las características a las que se ocupan en el servicio

en el id en user se puede utilizar lo que es el DNI ya que es un identificativo único

Clases: es el molde del pastel
Atributos: los ingredientes del pastel
Métodos: los pasos para hacer el pastel

Con el Sistema de adopción

¡Hola a todos!
Encontré un programado llamado StarUML que me ha servido para realizar los ejercicios de modelado. Se los recomiendo mucho 😄
.

Si te gusta trabajar desde el navegador les recomiendo Diagrams.net, puedes crear tus diagramas sin necesidad de descargar el software.
.
!Nunca paren de aprender¡

Yo agregaría a la clase Driver un atributo que contenga la información del conductor como el id del documento de conductor de su pais respectivo e incluso agregaría una clase pais para poder corroborar la información de cada conductor.

PD: Tal vez asocié este paradigma con Bases de datos relacionales hahaha

Aqui aplica el “Divide y Venceras”

Por Buena Práctica, y para posteriormente manejar bases de datos, designar un ID a cada objeto que lo hace único.

Excelente Clase y varias clases repiten datos o son iguales con diferente nombre

Se podría crear una clase llamada Persona con los atributos en común entre User y Driver, dejando que estos hereden de Persona.

En la manera en que está explicando la profesora, ¿Cómo se debería escribir el atributo nam?

feliz halloween

Creo que a los objetos de pago agregaría el atributo de monto.

Modelando nuestros objetos Uber


Es importante recalcar que si estás manejando una base de datos algo que es obligatorio por Entidad (objeto) es tener un atributo id que sea único para identificarlo.

Podemos guardar atributos como Arrays.

¿Que aplicacion usa para los apuntes?

Muy buenas compañeros, para crear diagramas UML encontre un programa muy sencillo y facil de usar para linux " umlet "

sudo apt-get update
sudo apt-get install umlet

Espero que os sirva un saludo.

Excelente explicación

Esto yo lo aprendi a golpes 😦 Que buena explicacion 😄

Genial.

Genial!!

Muy buena explicacion,

Escelente explicacion, todo muy claro y bien descrito de como modelar objetos en un proyecto. Me ha sido muy util esta clase

Excelente explicación.

Excelente explicación, no hubiera visto tanto.

Que buena explicacion

La redundancia es un error común cuando no hacemos un análisis preciso del problema y los objetos.

Buena explicación.

hasta ahorita de las mejores clases, que haya tenido, es muy buena explicando!!

Excelente!!! Muchas gracias!

Muy buena explicacion, me esta gustando mucho el curso 😄

Genial muy buenas definiciones.

Bien explicado!

¿Qué tan necesario o recomendable, es nombrar los atributos en inglés?

muy explicito

Entiendo la lógica detrás de mostrarnos como se crearían las clases pero faltaría diagramar el comportamiento interno entre ellas porque veo que en ovaciones se puede confundir conductor con usuario ya que son esencialmente estructuras idénticas y podría darse el caso en que alguien que en ocasiones es conductor pueda pedir el servicio como pasajero.

Ok, Seguimos con la parte de la teoria xD