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

No tienes acceso a esta clase

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

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 187

Preguntas 26

Ordenar por:

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

o inicia sesi贸n.

En UberX y UberPool ser铆a una buena idea poner un objeto como 鈥淯ber鈥 y que tuvieran el atributo 鈥淭ipo鈥 en donde se diferencia entre UberX y UberPool

Si ya tienen Visual Studio Code, pueden descargarse la extensi贸n drawio, que les permite dibujar diagramas UML 馃榿

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 鈥淐ar鈥 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

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

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

12. Mis apuntes sobre: 鈥淢odelando nuestros objetos Uber鈥

Les comparto el diagrama que hice.

Considero que faltar铆a la calificaci贸n que tiene un conductor en el Objeto 鈥渄river鈥 ser铆a un atributo como +score

鉁 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.

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

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.

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

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.


Apuntes de la Clase:

Modelando nuestros objetos Uber

Para los objetos user y driver se podr铆a crear una superclase persona que tenga los atributos en comun y utilizar herencia.

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

En la secci贸n de Archivos y Enlaces encontrar谩n las imagenes adjuntas de lo analizado esta clase 馃槈 馃憠

Modelando nuestros objetos Uber

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.

Esta muy genial la expliacion so far, lo estoy disfrutando.

Hola, buscando software para crear diagramas UML, me encontr茅 con este, me pareci贸 muy bueno por lo que lo comparto por aca, es gratis y se puede conectar con GItHub.

Lo encuentran aca: https://www.diagrams.net/

Se puede crear una clase persona con los atributos Is, name, document, email, password, y un atributo rol que los clasifique por cliente o conductor

Pueden usar Miro para hacer sus diagramas UML.

veo que existe mucha redundancia.

Mis apuntes #14

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

隆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隆

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

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

Es interesante y debatible la forma de generar clases, cada compa帽ero/developer tiene un concepto diferente a la hora de plasmar un ejemplo asi鈥

Explorando herramientas para hacer diagramas, encontr茅 varias en los aportes de muchos compa帽eros para empezar a explorar, encontr茅 un esto y espero les sirva:

https://mermaid.js.org/

uso plantuml en markdown

Modelando nuestros objetos Uber

Para modelar los objetos en el sistema de Uber, podemos utilizar un diagrama de clases UML. Aqu铆 te presento un ejemplo de c贸mo podr铆amos dise帽ar el diagrama de clases para el sistema de Uber con los objetos User, Driver, Route, y los distintos tipos de Uber:

  • User: representa a un usuario de Uber y tiene informaci贸n como el nombre, correo electr贸nico, n煤mero de tel茅fono y ubicaci贸n actual.
  • ID: representa la identificaci贸n 煤nica de un usuario o conductor.
  • Driver: representa a un conductor de Uber y tiene informaci贸n como el nombre, tipo de veh铆culo, matr铆cula del veh铆culo y ubicaci贸n actual.
  • Route: representa una ruta para un viaje de Uber y tiene informaci贸n como la ubicaci贸n de inicio y fin del viaje.
  • UberX: representa un tipo de servicio de Uber y est谩 relacionado con un viaje. Tiene informaci贸n como la tarifa del servicio y el tipo de veh铆culo.
  • UberPool: representa otro tipo de servicio de Uber y est谩 relacionado con un viaje. Tiene informaci贸n como la tarifa del servicio y la cantidad de pasajeros.
  • UberBlack: representa otro tipo de servicio de Uber y est谩 relacionado con un viaje. Tiene informaci贸n como la tarifa del servicio y el tipo de veh铆culo.
  • UberVan: representa otro tipo de servicio de Uber y est谩 relacionado con un viaje. Tiene informaci贸n como la tarifa del servicio y la cantidad de pasajeros.

Tambi茅n podemos ver las relaciones entre estos objetos, como la asociaci贸n entre User y Route, y entre Driver y Route. Adem谩s, podemos ver la composici贸n entre Route y las distintas clases de Uber.

Este diagrama UML nos ayuda a comprender mejor la estructura y las relaciones del sistema de Uber, lo que nos permite dise帽ar y desarrollar el sistema de una manera m谩s efectiva y eficiente.

Hasta el momento me ha gustado mucho

https://www.umlet.com/umletino/umletino.html
Hola, esta aplicaci贸n web es buena para hacer todo tipo de graficos incluidos los UML, diagramas de clase entre otros

Considero que no siempre es necesario un identificador (sint茅tico), ya que al dise帽ar una base de datos, los objetos pueden contener un atributo o combinaci贸n de ellos que constituyan ese identificador 煤nico (natural).

RESUMEN HASTA AQU脥
La programaci贸n orientada a objetos es un paradigma de programaci贸n que se basa en la definici贸n de clases y objetos, y en la organizaci贸n del c贸digo en torno a estas entidades. En este curso, se han visto temas como la abstracci贸n, la herencia, el polimorfismo y el encapsulamiento, que son los pilares de la programaci贸n orientada a objetos.

Adem谩s, se ha visto c贸mo declarar propiedades y m茅todos en los cuatro lenguajes que se est谩n viendo en el curso (Java, JavaScript, PHP y Python), as铆 como c贸mo analizar un problema y extraer los objetos que lo componen. Tambi茅n se ha trabajado en la plasmaci贸n de objetos en diagramas de modelado UML, y en la modularidad del c贸digo.

En general, la programaci贸n orientada a objetos permite organizar el c贸digo de una manera m谩s clara y mantenible, y facilita la reutilizaci贸n y la expansi贸n del mismo.

Mis notas

Modelando nuestros objetos Uber

User Driver Route
id id id
name name start: (2)
document document end: (2)
email email
password password

UberX Uberpool Uberblack Ubervran
id id id id
license license license license
driver driver driver driver
passangers passangers passangers typeAcepted()
brand brand typecarAcepted() seatsMaterial ()
model model seatsMaterial ()

Card Paypal Cash
id id id
number email
cvv
date

Para mi veh铆culo deber铆a ser una clase de la cual se desprenden cada uno de los tipos de veh铆culo, igualmente el usuario, del cual se desprenden los tipos de usuario que ser铆an los objetos鈥

PODRIA SER CLASES:
persona
veh铆culo
pago
ruta

Considero que debe de agregarse en 鈥榗ard鈥, un atributo de:

stampCard[2]

Refiri茅ndose si usa Mastercard o visa.

驴Cu谩l es el prop贸sito de manejar ID en cash? Se supone que el efectivo es id茅ntico entre s铆.

Informaci贸n resumida de esta clase
#EstudiantesDePlatzi

  • Importante que todos nuestros objetos tenga id

  • Podemos empezar definiendo todos los atributos para cada objeto

  • Utilicemos el ingl茅s lo m谩s que podamos

RESUMEN CLASE 14:
MODELANDO NUESTROS OBJETOS

I.- NUESTROS OBJETOS

USER

  • id

  • name

  • document

  • email

  • password

DRIVER

  • id

  • name

  • document

  • email

  • password

ROUTE

  • id

  • start:[]

  • end:[]

UBER X

  • id

  • license

  • driver

  • passengers

  • brand

  • model

UBER POOL

  • id

  • license

  • driver

  • passengers

  • brand

  • model

UBER BLACK

  • id

  • license

  • driver

  • passengers

  • typeCarAccepted []

  • seatsMaterial []

UBER VAN

  • id

  • license

  • driver

  • passengers

  • typeCarAccepted []

  • seatsMaterial []

CARD

  • id

  • number

  • cvv

  • date

PAYPAL

  • id

  • email

CASH

  • id

Me parece o la profe se olvido el objeto 鈥淭RIP鈥 ??? jejeje

Adjunto el diagrama !

en el caso de haber pensado en los tipos de uber como los atributos de un objeto 鈥渁uto鈥, o en los tipos de pagos como objeto 鈥減ago鈥, 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.

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

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 鈥淒ivide 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

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.