EJERCICIO de POO en Java ☕ 02: RESUELTO Paso a Paso ✅

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024

Комментарии • 83

  • @CharlyCimino
    @CharlyCimino  Год назад +3

    🙌 ¡APOYÁ AL CANAL! Si te gusta mi contenido, invitame un cafecito 😁
    ➡ Desde Argentina: cafecito.app/charlycimino
    ➡ Fuera de Argentina: paypal.me/charlycimino
    📌 Dejá tu comentario 📝, dale 'like' 👍, suscribite al canal 👥 y activá la campanita 🔔 ¡GRACIAS!
    🤳 ¡Seguime!
    🌏WEB PERSONAL: charlycimino.com 🌏
    🌎INSTAGRAM: instagram.com/charlycimino 🌏
    🌍FACEBOOK: facebook.com/charlyycimino 🌏
    🌏LINKEDIN: linkedin.com/in/charlycimino 🌏
    🌏GITHUB: github.com/CharlyCimino 🌏
    🌏TWITCH: www.twitch.tv/charlycimino 🌏
    🌏PATREON: patreon.com/charlycimino 🌏

  • @matiasmolina8015
    @matiasmolina8015 26 дней назад

    El mejor planteo de POO que vi en youtube hasta ahora(tanto el ejercicio como la resolucion).
    Desde ya muchas gracias maestro

  • @junma321
    @junma321 10 месяцев назад +4

    Me volaste la cabeza maestro, arranqué con Java hace poco y me introdujiste hacia la verdadera lógica y esencia de POO que no me terminaba de cerrar, así es como debería resolver todos los ejercicios integradores y hacia eso voy. Impecable, nada más que decir.

  • @ALaGrandeLePuseCuca023
    @ALaGrandeLePuseCuca023 Год назад +2

    Hola, recién comienzo con POO pero solo encontraba ejercicios muy fáciles hasta que me tope con esto y hay me di cuenta que me falta mucho por aprender. Todavía, no tuve la oportunidad de ver tus anteriores videos pero si estas dando este tipo de ejercicio supongo que ya lo enseñaste, me motiva mucho en ver cada uno para poder tener este conocimiento que tienen al realizar este ejercicio. Muchas gracias

    • @CharlyCimino
      @CharlyCimino  Год назад +1

      Me alegro que te guste. Te dejo el link de.la.playlist para arrancar desde -10: ruclips.net/p/PLOw7b-NX043aSC7ZNtEuVfY8xZoNzVqdJ

  • @MarcosHernandez-ie4xd
    @MarcosHernandez-ie4xd Год назад +1

    Esto es oro puro, gran video!, nada parecido por lo que vi en youtube.

  • @jesusdanielsanchezalarcon7718
    @jesusdanielsanchezalarcon7718 Год назад +1

    Me encantan estos cursos, las explicaciones son a lujo de detalle, no falta nada, muchísimas gracias 👍

  • @johnnyrosero1672
    @johnnyrosero1672 2 года назад +1

    excelentes videos, con este curso he aprendido mas que en clases presenciales... muchas gracias...

  • @sabrinatecherasosa
    @sabrinatecherasosa Год назад +1

    Sabes que ando necesitando , mas ejercicios de este tipo pero implementando clases servicios por cada entidad.

  • @leonardoherrera1474
    @leonardoherrera1474 2 года назад +1

    Que excelente explicando! Te has ganado un humilde aprendiz.. Saludos

  • @yamilmedina248
    @yamilmedina248 Год назад

    Charly gracias por tus clases, vi y practique todos los videos anteriores sin embargo en este me voló la cabeza al pensar que había aprendido todo , hice el ejercicio por mi cuenta antes de ver el video sin embargo lo que hiciste fue muy superior a mis espectativas.
    Un abrazo enorme profe.

    • @CharlyCimino
      @CharlyCimino  Год назад

      Suele pasar en este paradigma. Seguí adelante. Abrazo y gracias

  • @gabrielalejandroorellana5366
    @gabrielalejandroorellana5366 7 месяцев назад

    INCREIBLE ESTA PRACTICA! HERMOSISIMO. GRACIAS.

  • @camilo1017
    @camilo1017 4 месяца назад

    Tremenda explicación y desarrollo del ejercicio. Gracias por estos vídeos

  • @matiloki
    @matiloki 3 года назад +2

    Buenísimo para practicar!

  • @claudioa.fuentes7674
    @claudioa.fuentes7674 3 года назад

    Gracias Charly, y cómo decís mas allá del proyecto me quedaron varias cosas válidas de cómo ir encarando el desarrollo de un programa.

  • @leodee3214
    @leodee3214 2 года назад

    Implecable! Para ver un par de veces! Muchas Gracias

  • @yayimqz9858
    @yayimqz9858 9 месяцев назад

    Excelente video!!!
    De los mejores
    Yo trate de hacerlo sin mirar la solución, y parece que me salió muy similar, con excepción de que personalice las cuotas de cada entidad financiera.

  • @egaguirre
    @egaguirre Год назад

    Super bien explicado, muy util. Muchisimas gracias.

  • @enjoythelive337
    @enjoythelive337 13 дней назад

    Muchas gracias por tu aporte. Me parto de risa cuando después de varias estalladas de cabeza para intentar asimilar la complejidad de todas las relaciones del planteamiento dices " para los más avanzados ... saldo = saldo - monto es lo mismo que : saldo -= monto".

  • @juanjoselanza
    @juanjoselanza 2 года назад

    Buenísimo el video!!👏 Me quemó el cerebro de la mitad del video en adelante🤯, pero mañana lo reveo para fijar un poco más todo el proceso. Muchas gracias por el contenido!!🙏

  • @samuelgutierrez5704
    @samuelgutierrez5704 2 года назад

    Excelente como explicaste el ejercicio, es como un ejercicio tipo parcial.

  • @missakire3623
    @missakire3623 2 года назад

    Excelente, muchisimas gracias.Tus videos me han sido muy valiosos.

  • @dianapineda3196
    @dianapineda3196 2 года назад

    mil gracias por tu explicacion tan valiosa

  • @leofabioFAC
    @leofabioFAC 2 года назад

    Excelente explicación, gracias por compartir!

  • @TDanisa
    @TDanisa 3 года назад

    Uy, que bien viene un ejercicio modelo!!!!! Gracias 😊

  • @Carlosdev123
    @Carlosdev123 2 года назад

    Genial y muy didáctico este ejercicio modelo!

  • @jessramos3862
    @jessramos3862 Год назад

    muy bien, en un video anterior te decia que un video asi como este, gracias

  • @rockechan152
    @rockechan152 3 года назад

    Gracias, por tu dedicación!

  • @cxncerr
    @cxncerr Год назад

    sos un maquina

  • @Kun.89
    @Kun.89 Год назад +1

    Muy bueno la verdad, no se como aun no te conocía 🙄😑😑

  • @bettyretana3950
    @bettyretana3950 6 месяцев назад

    Hola @CharlyCirnino tienes un talento maravilloso para explicar, hasta haces que parezca fácil programar, gracias por eso . Tengo una consulta, en uno de tus videos dices que no siempre es necesario agregar Setter y Getter, incluso mostraste que desde source se puede insertar en el código, casi automático si es que uno así lo requiere. Pero haciendo esto sin los setter y Getter mi programa no compilaba, y compilo hasta que se lo hice a todos los atributos. Sabes qué pudo haber pasado?

    • @CharlyCimino
      @CharlyCimino  6 месяцев назад +1

      Hola. Gracias por tus palabras. Si tu código no compilaba sin getters/setters es porque en algún lado se estaban llamando seguramente. Habría que fijarse dónde. También, a nivel avanzado, algunos frameworks acceden de manera implícita a las propiedades de los objetos mediante getters/setters, siendo necesarios, pero no creo que sea tu caso, pues estos videos y ejercicios son introductorios, sin usar librerías externas ni frameworks. Saludos

  • @joseacosta-yp4xs
    @joseacosta-yp4xs 4 месяца назад

    Hola Charly tomé el enunciado e hice el ejercicio por mi cuenta para luego compararlo con el tuyo y noté algo. A la hora de descontar el saldo, no debería descontar el monto de la cuota en lugar del monto total? es decir, en la vida real se pagaría en el resumen de la tarjeta el monto de la cuota y no el total de la compra. A lo mejor yo lo malinterpreté o lo estoy sobrepensando mucho jeje, igualmente entiendo que el objetivo del vídeo es enseñarnos como trabajar con objetos y que por cierto me ayudó un montón, felicitaciones por el buen trabajo!

    • @CharlyCimino
      @CharlyCimino  4 месяца назад +1

      Hola. El saldo de la tarjeta es el monto que todavia podes gastar, no el valor que te vendría en el resumen. Si mi saldo es 1000 , solo puedo comprar algo de 1000 o menos. Luego, cuantas más cuotas, más tiempo tengo para pagar pero también más tardaré en recuperar el saldo completo para gastar en otra cosa 😉 Saludos

  • @lionelchoque3281
    @lionelchoque3281 3 года назад

    Messirvee! seguí subiendo videos!

  • @HackZ2266
    @HackZ2266 Год назад

    excelente video !!

  • @alvarog.999
    @alvarog.999 3 года назад

    Gracias Charly ;)

  • @xgnim91
    @xgnim91 Год назад

    Hola Charly! Estoy siguiendo la lista de reproducción en el orden en que se presenta, y me doy cuenta que en este video utilizas enums y antes de este video no los habias mencionado. Hay que ver los vídeos de enums que tienes después de este?
    Saludos y gracias por todo 😊

    • @CharlyCimino
      @CharlyCimino  Год назад +1

      Hola Jesús, es cierto, no quedó bien ordenada la playlist. Te sugiero veas solo el primer video de enums (son 3), con ese te basta para entender este ejercicio. Saludos

  • @jimmyxxx1981
    @jimmyxxx1981 Год назад

    Genial.

  • @christiand.1795
    @christiand.1795 Год назад

    Como siempre, gran explicación y ayuda para cristalizar los conocimientos. Una duda, todo los valores de los atributos son ingresados por el programador, para fines del ejemplo y enseñanza, pero si fuera el usuario el que ingresa los valores, ¿dónde se solicitan los inputs, en la clase Principal a través de variables?

    • @CharlyCimino
      @CharlyCimino  Год назад

      En un caso real, los datos llegan de una base de datos, una petición HTTP, etc... Java se usa en el backend, por ende, el usuario no va a usar la consola

    • @christiand.1795
      @christiand.1795 Год назад

      Gracias.@@CharlyCimino

  • @elcoya1294
    @elcoya1294 Год назад

    👏👏👏👏

  • @ezequielstom6745
    @ezequielstom6745 2 года назад

    uff tremendo!

  • @el_yisusT
    @el_yisusT Год назад

    Ahora con Lombok, todas las clases con @Data y tu tan cuidadoso con los Getters y Setters, jajaja. Se me rompe la cabeza. Y tiene sentido, el otro día en una prueba técnica, me hicieron manipular una lista creando métodos add y remove porque la lista no tenía un Getter.

    • @CharlyCimino
      @CharlyCimino  Год назад +4

      No hay que ser dogmático, los JavaBeans por ejemplo son un estándar que define que tiene que haber getters y setters para cada atributo... Acá lo que trato es de no abusar de que todo lo haga una sola clase que les pida a los demás siempre sus datos sino delegar responsabilidades. Todos los objetos hacen parte de la lógica para llegar al resultado final, se distribuye, no se centraliza. Pero bueno, a medida que vas aprendiendo notás que hay patrones que se contradicen con otros y, al fin y al cabo, tenemos que decidir qué usar en cada circunstancia. No hay verdades absolutas :)

    • @el_yisusT
      @el_yisusT Год назад

      @@CharlyCimino Gracias por tu respuesta!

  • @S4MBENTZ
    @S4MBENTZ 2 года назад

    genial

  • @celinagoday1382
    @celinagoday1382 Год назад

    Hola Charly 😃 vengo siguiendo la lista de reproducion desde el principio y queria saber si para hacer este ejercicio tendria que ver los videos de arraylist y enums primero

    • @CharlyCimino
      @CharlyCimino  Год назад +1

      Hola, no hace falta, este ejercicios está pensado para integrar los primeros conceptos y a partir de aquí sí ver ArrayList. El orden de la playlist es consistente. Saludos y gracias por ver 😊

  • @zx6699
    @zx6699 3 года назад

    Se que no es el tema del video pero, comencé con programación estructurada y venía a pedirte recomendación sobre libros, cursos o cualquier otra cosa que me pudiera ayudar a entender éste paradigma, de antemano te agradezco tu colaboración

    • @zx6699
      @zx6699 3 года назад

      Ah... Ya mismo me suscribo a tu canal...

    • @CeratiGilmour
      @CeratiGilmour 2 года назад +1

      El libro Deitel Deitel.

  • @Alfrericotero
    @Alfrericotero Год назад

    maestro geniales tus videos pero me surgió algo.
    cuando yo tengo un saldo de tarjeta inferior al monto y por ende busco que el objeto ticket me retorne nulo no lo hace, me genera en el main un nullpointerexception, es decir me da un error y no me muestra como a vos el null en consola.

    • @CharlyCimino
      @CharlyCimino  Год назад +1

      Evidentemente estás queriendo acceder a una referencia nula. Debes fijarte qué línea te marca que está fallando y revisar si no hay un null ahí.

    • @Alfrericotero
      @Alfrericotero Год назад

      @@CharlyCimino Maestro muchas gracias por responder, efectivamente era ese el error.
      yo en vez de mostrar por consola el objeto ticket que retornaba de efectuarPago()(con el valor nulo) trataba de mostrar el toString de Ticket.

    • @CharlyCimino
      @CharlyCimino  Год назад

      @@Alfrericotero claro, si ticket es null, lanza la excepción. Otra cosa es intentar mostrar una variable con println(). Ya tiene previsto que pueda haber nulos ese método. Lo develó en el vídeo de 'toString es polimorfismo'

  • @maximilianosantucho4593
    @maximilianosantucho4593 Месяц назад

    Hola profe, como esta? pregunta: Por que en Ticket ticketGenerado lo instancia con posnet.efectuarPago( ) en lugar de
    Ticket ticketGenerado = new Ticket(nombreApellido, montoTotal, montoPorCuota); ?? no logro darme cuenta

    • @CharlyCimino
      @CharlyCimino  Месяц назад

      El objeto Ticket lo genera el Posnet y lo retorna cuando se efectúa un pago. ¿Por qué generarías un Ticket fuera del Posnet y además qué valores le pondrías a cada atributo?

    • @maximilianosantucho4593
      @maximilianosantucho4593 Месяц назад

      @@CharlyCimino ahh, es verdad ! efectuarPago( ) retorna un Ticket, jamas lo hubiera pensado así jaja menos teniendo en mente que cada vez que se instancia una clase creí que obligatoriamente había que hacer new Ticket( ); pero viendolo de esa manera tiene sentido
      Muchas gracias Charly !! Sos el mejor, cada vez disfruto más de aprender Java por tus videos, saludos

    • @CharlyCimino
      @CharlyCimino  Месяц назад +1

      @@maximilianosantucho4593 exacto, para instanciar hay que usar new. Creo que tu confusión radica en que estás acostumbrado a que siempre asignas a una variable una instancia construida en el momento. Este caso te demuestra que no necesariamente: en una variable se puede guardar una referencia a un objeto que por ahí está en otra variable o que retornó un método. Recordá que la POO es muy diversa, no se aprende de memoria ! Abrazo 🫂

    • @maximilianosantucho4593
      @maximilianosantucho4593 Месяц назад

      @@CharlyCimino Perfecto, mas claro imposible sos un excelente profesor, te re agradezco

  • @victorevangelista8656
    @victorevangelista8656 2 года назад

    Volvi a ver este video y tengo una pregunta que tal vez no tenga que ver con el ejercicio que se presenta de forma sencilla para que la explicación se entienda: aqui muestras que desde un enunciado pasas a uml y luego lo traduces a código java pero, ¿En que parte iria el pseudocódigo o ya no seria necesario? por ejemplo yo entiendo que despues de analizar el enunciado y generar el diagrama uml se tendria que escribir pseudocodigo (que no depende de ningun lenguaje de programación) para todos los objetos, atributos y metodos de cada clase, hacer pruebas de escritorio y finalmente traducirlo al lenguaje que vayamos a utilizar (que en este caso seria java pero podría ser otro).

    • @CharlyCimino
      @CharlyCimino  2 года назад +2

      En ese caso el vídeo duraría más de una hora y no tendría tantas vistas. Además el pseudocódigo es solo un proceso intermedio pero cuando ya se tiene experiencia se puede saltear

    • @victorevangelista8656
      @victorevangelista8656 2 года назад

      @@CharlyCimino es decir que pasariamos a escribir código directamente ¿verdad? muchas graxias por aclararme la duda ya uqe he estado ahciendo pseudocódigo y como recien voy aprendiendo UML no estaba seguro basandome en el ejemplo en que parte iria el pseudocódigo y si seria necesario incluirlo o no.

    • @Francisco-me1um
      @Francisco-me1um 2 года назад +2

      @@victorevangelista8656 hacer el pseudo solo haría que te demores más, al hacer el UML ya tienes una guía e idea de como programarlo

  • @victorevangelista8656
    @victorevangelista8656 11 месяцев назад

    Tengo una duda, ¿Que pasaría si en el constructor del objeto persona no se escribieran valores en sus parámetros?, ¿O que se pasara por parámetro algo como esto: "" ?, ¿No se tendría que validar también que no se pueden dejar datos en blanco igual para el objeto tarjeta de crédito?. Tal vez suene tonto ya que una tarjeta de crédito siempre tiene que tener un titular (persona) indicando todos sus datos y que no puede existir una tarjeta de crédito sin titular. Tal vez yo no analice bien este ejercicio y dado el mismo para esta situación no se necesario validar los datos del objeto persona que esta como titular de una tarjeta de crédito. Lo mismo con la tarjeta de crédito que seria ilógico que no tuviera una entidad bancaria o un numero de tarjeta. Lo del saldo si lo entendí ya que para poder pagar algo desde el posnet, este debe de verificar que la tarjeta tenga el saldo suficiente para cubrir el costo.

    • @CharlyCimino
      @CharlyCimino  11 месяцев назад +1

      Todos los datos que llegan por parámetro en un constructor o método público deben ser validados. No se hizo tanto énfasis en eso en este ejercicio para no hacer muy largo el video. Saludos

    • @victorevangelista8656
      @victorevangelista8656 11 месяцев назад

      @@CharlyCimino ya veo, es decir que ademas de un método, ¿También se pueden validar datos en el constructor?, por ejemplo, dentro del constructor se podría validar que los parámetros no estén en blanco.

    • @CharlyCimino
      @CharlyCimino  11 месяцев назад +1

      @@victorevangelista8656 exacto, de hecho el constructor es también un método. Lo ideal sería que llame a los setters y que éstos sean los que tiene validación

    • @victorevangelista8656
      @victorevangelista8656 11 месяцев назад

      @@CharlyCimino ya veo, que interesante, pensé que solo en el constructor se usaba para inicializar los valores de los atributos de la clase. No sabía que también se podía llamar a métodos en el. Gracias por responder a mi duda!!!! Veo que aún me falta mucho por aprender.

    • @victorevangelista8656
      @victorevangelista8656 11 месяцев назад

      @@CharlyCimino una pregunta más, mencionas lis setters para validar al ingresar datos en el constructor. Si los datos que se pasan no son datos en blanco, entonces se asignan, pero si están en blanco, tal vez se tendría que dar un valor por defecto o en su caso indicar mediante un mensaje que lis datos no son válidos pero también se tendría que validar antes de asignar el objeto persona a la tarjeta??? Es decir si los datos del objeto persona son válidos se asignar y se pasa el objeto persona al objeto tarjeta pero en caso contrario si los datos del objeto persona no son válidos entonces no se podrá pasar al objeto tarjeta. No sé si esto esté bien.

  • @victorevangelista8656
    @victorevangelista8656 2 года назад

    ¿Por que en el código colocaste el constructor en la clase TarjetaDeCredito pero no lo colocaste en el diagrama UML?

    • @CharlyCimino
      @CharlyCimino  2 года назад +1

      Porque no lo consideré relevante en la explicación

    • @victorevangelista8656
      @victorevangelista8656 2 года назад

      @@CharlyCimino okpero aun asi, ¿Para este ejemplo si seria correcto el colocarlo en el diagrama o al hacerlo estariamos agregando información que no aportaria nada relevante?

    • @CharlyCimino
      @CharlyCimino  2 года назад +3

      @@victorevangelista8656 los diagramas UML son para los humanos, no para las máquinas. Se pone o se saca info a discreción, de acuerdo a si ayuda a entender mejor o no

    • @victorevangelista8656
      @victorevangelista8656 2 года назад

      @@CharlyCimino ok ya entiendo, muchas gracias por la respuesta amigo!!

  • @jessramos3862
    @jessramos3862 Год назад

    cuate que es el DNI??