Curso Java. Interfaces y clases internas Interfaces II. Vídeo 50

Поделиться
HTML-код
  • Опубликовано: 9 сен 2024
  • En este vídeo hablamos de algunas propiedades de las interfaces y vemos con un ejemplo cómo crear interfaces propias.
    Para más cursos, ejercicios y manuales visita: www.pildorasinf...

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

  • @pildorasinformaticas
    @pildorasinformaticas  3 года назад +11

    ✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
    🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀
    🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀
    💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥

  • @matiassiano6651
    @matiassiano6651 Год назад +16

    es increible que hace 8 años existe este video y en la actualidad sigue siendo una joya, ojalá todos los cursos de programacion online sean asi deep learning como este. gracias por compartir este curso!

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

      Yo lo estoy haciendo y me parece genial.

  • @teldatamcy5656
    @teldatamcy5656 7 месяцев назад +2

    Gracias!!! Chévere 🍌 2024!!!. Nada como tomar una buena taza de café a primera hora mientras se revisa el material de JAVA... una día más un video más...

  • @velozs01
    @velozs01 9 лет назад +41

    Hola, excelente curso, en estos 50 primeros videos he aprendido mas que en lo visto en la Universidad, muchas gracias por compartirlos.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +9

      Sergio Veloza Castillo Hola !! Gracias por el comentario. Me alegro de que te gusten los vídeos. Un saludo

  • @bdonunezn6593
    @bdonunezn6593 11 месяцев назад +2

    Esta genial el curso. Ha medida que practico mi logica y mi entendimiento de las cosas se va incrementando. Aveces a las cosas solo hay que dedicarles tiempo y tener la actitud correcta.

  • @israel1919
    @israel1919 5 лет назад +9

    Ha sido un camino largo para llegar a estos 50 videos, pero ahora veo a Java con otros ojos.
    Gracias.

  • @taoaleixandre2089
    @taoaleixandre2089 7 лет назад +13

    Parace que llevas toda la vida enseñando programación. Aunque tengas un incentivo económico, que el trabajo que realizas esté disponible para todo el mundo es una gran labor. Educación de calidad sin importar tu clase social. Gracias Juan

  • @DarkoLoq86
    @DarkoLoq86 7 лет назад +13

    Uno entiende perfectamente contigo, y me atrevo a decirlo, eres el mejor profesor del mundo.

  • @unlockme1424
    @unlockme1424 3 года назад +4

    *Por si alguien no entendió el principio de sustitución...*
    Mírenlos como cajas, imaginen que la SubClase es una caja pequeña y la ClasePadre es una caja grande.
    Al momento de hacer :
    Empleado director_comercial; // Estamos declarando una instancia llamada "director_comercial"
    director_comercial = new Jefatura(" ", , , ); // Con esto creamos el objeto(instanciando) la instancia declarada arriba.
    *Sé que es algo redundante pero ahora lo aclaro*
    Gráficamente esto sería como intentar meter la caja pequeña(SubClase) en una caja grande(ClasePadre) por esta razón funciona perfectamente el principio de sustición.
    -----------------------------------------------------------------
    En cambio cuando hacemos lo opuesto
    Jefatura director_comercial;
    director_comercial = new Empleado(" ", , , );
    ESTO ESTA COMPLETAMENTE MAL !!!
    La razón es porque si lo vemos de manera gráfica, sería como intentar meter la caja grande(ClasePadre) en la caja pequeña(SubClase), resultando en algo imposible.
    Se me ocurrió esta forma para poder memorizarlo fácilmente en un futuro, espero le sirva a alguien

  • @MancoStein
    @MancoStein 5 лет назад +3

    50 Videos vaya que han sido Productivos muchas gracias por este magnifico curso

    • @pildorasinformaticas
      @pildorasinformaticas  5 лет назад

      Gracias por el comentario. El curso tiene 278 vídeos (lo digo por si crees que este es el último). Un saludo!

  • @jonathanminutillo4897
    @jonathanminutillo4897 8 лет назад +36

    Por fin llegué al 50 jaja Excelentes! vuelvo a agradecerte por compartir todos estos tutoriales.

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +5

      Gracias por seguir el curso con tanto interés. Un saludo!!

    • @luisafda.valdesg147
      @luisafda.valdesg147 6 лет назад +1

      Lo terminaste?

    • @germanalpascuadros3927
      @germanalpascuadros3927 4 года назад +2

      yo llevo hace 5 meses este curso y recien voy en el 50, pero esque trato de profundizar y que se me quede muy claro todo lo aprendido y ahora lo entiendo mucho mejor cada video cada termino que habla el profesor

    • @jonathanminutillo4897
      @jonathanminutillo4897 4 года назад +1

      @@luisafda.valdesg147 si, la verdad en su momento me sirvió muchísimo. Hoy cambie de rumbo al data science pero siempre agradecido de estos videos

    • @jonathanminutillo4897
      @jonathanminutillo4897 4 года назад +1

      @@germanalpascuadros3927 siii a mí me llevo un tiempo también, pero vale la pena, o por lo menos he visto otros cursos y no eran tan claros como este. Felicitaciones German por el esfuerzo!

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

    Usted es un maestro, mi más grande admiración!!

  • @wcharlesmt5134
    @wcharlesmt5134 5 лет назад +8

    Hola. Muchas gracias por estos vídeos que más que vídeos son clases magistrales donde vas más haya de un simple tutorial. Sos grande.

    • @pildorasinformaticas
      @pildorasinformaticas  5 лет назад +1

      Gracias por el comentario. me alegro de que te gusten los vídeos. Un saludo!

  • @mariwewewe7402
    @mariwewewe7402 6 лет назад +7

    Estudio en la Universidad y el orden de explicación de los conceptos es distinto a la hora de exponer la asignatura. Se nombran las interfaces en la introducción explicando por encima que es "el diseño" de lo que vamos a hacer después. ( Y así con otros muchos conceptos, que supongo que tiene su lógica para los que planifican la asignatura). La cuestión es que he estado haciendo este curso desde el video 0 a unos 5 videos por día y hoy he visto la luz!!! Es magnífico lo que haces y cómo lo haces. Seguro que vas a tener tu recompensa ( si no al tienes ya) por el esfuerzo y trabajo tan enormes que se aprecia que haces para elaborar estos cursos. PLAS.. PLAS, y mil gracias.

    • @pildorasinformaticas
      @pildorasinformaticas  6 лет назад +1

      Muchas gracias por el comentario. Me alegro de que los vídeos te resultaran de utilidad. Un saludo!

  • @joseKKX
    @joseKKX 7 лет назад +2

    👏👏👏👏👏👏👏 50 vídeos de los cuales ninguno deja duda alguna explicando. Gracias Juan

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

    Gracias profesor Juan, por compartir tanto conocimiento. Sin duda alguna el mejor profesor en linea.

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

    excelente video, ayudo mucho a comprender todo, en el video anterior quedaba un poco en el aire todo pero este video puso todo en su lugar. Gracias por el curso!

  • @Nayyrda
    @Nayyrda 7 лет назад +1

    Gracias a tus videos he empezado ingenieria informatica con una buena base de Java y me esta yendo muy bien, muchas gracias de verdad, espero que leas el comentario y sepas que me has ayudado mucho

  • @randallbiermann2525
    @randallbiermann2525 5 лет назад +1

    Increíble como un curso tan antiguo le sigan contestando las dudas después de más de 4 años desde su creación, EXCELENTE TRABAJO, yo apenas pueda voy a dar algún aporte monetario porque si no lo hago me sentiría realmente mal, increíble que todo esto sea gratis! :)

  • @hugosanchezocampo4022
    @hugosanchezocampo4022 8 лет назад +5

    Ya Casi LLego Swing Ufff Tanto Tiempo Esperando LLegar a esa parte... muy pero muy buen tutorial me ha servido bastantisimo

  • @SinNombre101
    @SinNombre101 8 лет назад +5

    Excelente vídeo y explicación.
    Gracias por su trabajo y paciencia.

  • @mijailozivkovich9871
    @mijailozivkovich9871 3 года назад +5

    muy interesante, hasta ahora he aprendido muchas cosas, pero aun me cuesta encontrarle la logica a las interfaces y su utilidad

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

      Estoy igual pero creo entender que serviria para que una clase haga algo que no es necesaria que otras clases mas abajo en la jerarquía hereden o mas arriva en la jerarquía de herencia tampoco la tengan ya que no deben implementar ese método. Ya veré si se me aclara en el próximo vídeo. Esta respuesta es como una nota mental imgino después de un año ya lo tiene mas claro que yo ahora

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

      @@LibertCharrua Hola. ¿Qué conclusiones sacas o qué podrías aportar ahora sobre el tema, tras un año? :D Gracias. ;)

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

    si señor video 50 👊jeje , lo mejor es que lo he comprendido todo gracias a que es el mejor profesor de la bolita del mundo!! muchas gracias maestro.

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

    Ahora si mas o menos lo estoy agarrando al tema este

  • @joaquinalcazarlopez
    @joaquinalcazarlopez 7 лет назад +1

    Gracias por el curso, me ayuda mucho a entender el lenguaje Java.

  • @estivenmartinez576
    @estivenmartinez576 5 лет назад +2

    Enhora buena tio, estoy avanzado lento, pero con pasos firmes. Gracias.

  • @engineer._
    @engineer._ 9 лет назад +9

    Habìa visto antes el "instanceof", y no comprendìa muy bien
    para que sirbia.!
    Pero ahora lo entendì, muy bien.!!!
    muchas gracias :)

  • @vecinadelbronx
    @vecinadelbronx 5 лет назад +34

    Like si te pasas más de 10 minutos buscando un error que crees muy grave y resulta ser que te has olvidado una coma o has escrito mal una palabra :_D por favor espero no ser la única! jajajajaja Aprender a programar por mi cuenta no sé si lo lograré pero desde luego estoy desarrollando una paciencia que ni Yoda cuando conoció a Luke!

  • @nicolaschiesa4052
    @nicolaschiesa4052 9 лет назад +3

    Hola. Gracias por el curso, es excelente. Ya alcance los primeros 50 vídeos. Espero comprender los temas que siguen. Las explicaciones son muy buenas. Gracias por subirlos. !!!

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +Nicolás Chiesa Gracias por tu comentario y por seguir mis vídeos. Un saludo

  • @pacopico2222
    @pacopico2222 8 лет назад +1

    Realmente didacticos y entretenidos. Muchas gracias.

  • @albertoandresvettori8333
    @albertoandresvettori8333 7 лет назад +1

    Excelente!!! curso...,Felicitaciones!!! la verdad que es el mejor canal para aprender programación, desde ya agradecerte por compartir tus conocimientos, Saludos Cordiales.

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад

      Gracias por el comentario y por seguir mis vídeos. Me alegro de que te gusten. Un saludo!!

  • @marcoa.barrientostaipe796
    @marcoa.barrientostaipe796 3 года назад +1

    A ver nuevamente los videos 49 y 50... y pensar que recién llegaré a la quinta parte de todo el curso :,D

  • @sare61
    @sare61 7 лет назад +1

    eres muy bueno educado ja que apredien c# y no llegaba a instanciar bien porque me daba error en todo los sitio y nunca pense poder con java . otra vez mucha gracias .eres un grande!!!!!!!

  • @titoperas3308
    @titoperas3308 9 лет назад +4

    Excelente explicación Juan!!

  • @forsabarça
    @forsabarça 4 года назад +1

    A modo de resumen, según lo que he entendido:
    Usamos interfaces debido a dos motivos:
    1. Herencia múltiple
    2. Uso métodos y constantes pertenecientes a otras clases (interfaces)
    Es decir:
    Una clase que implementa a otra, los métodos y constantes de esta segunda deben ser declarados en la la primera clase y por ese motivo, existe herencia múltiple.
    Al declar un método en la interface debe declarse o no cómo public abstract pero al hacerlo en la clase que va a invocar a dicho método no se declara de dicha forma.
    PD: ¿No deberíamos usar la modularización? El código es muy largo y existen diversos métodos...

  • @lucymar_pesca
    @lucymar_pesca 4 года назад

    Daniel Bernardo Graset, agregaría 3. Para obligar al programa a definir un comportamiento; perdón agrego algo quizas estupido, pero yo se lo agradecí a dios, para no escribir tantas veces System.out.println, simplemente pongan syso y presionen ctrl+space, Slds Muy bueno el curso Excelente el profe como siempre!!!

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

    50 videos completados vamos con todo🤩

  • @manuelantonioquinteroshern9185
    @manuelantonioquinteroshern9185 9 лет назад +68

    Ya quiero entrar a Swing...tengo como 4 horas en dos vídeos XD

  • @adriancordova1618
    @adriancordova1618 3 года назад +5

    Definitivamente hay que comprender perfectamente la programación orientada a objetos y sobre todo el tema de la Herencia para entender muy bien el principio de sustitución "Es un...", y también entender perfectamente el tema del polimorfismo, si no se comprenden bien estos temas los demás serán difíciles de entender. Os recomiendo comprenderlos bien para poder seguir avanzando en el curso. Me encantaría explicar en profundidad algunos detalles que no se mencionan en los videos, como lo he hecho en videos anteriores, pero son detalles muy abstractos que me resulta cada vez más difícil expresarlos y pierdo mucho tiempo. En verdad comprendan bien la Herencia, el polimorfismo, y el casting de objetos, para que no les cueste mucho trabajo seguir adelante. Les recomiendo que comprendan en profundidad (a nivel código) el principio de sustitución "Es un..." ahí está la clave de todo, ese principio utiliza la herencia y el polimorfismo, una vez que lo entiendan, ahora aplíquenlo en el casting de objetos (convertir un objeto de la subclase a uno de la superclase) ;) fácil verdad ?????? mucha suerte a todos !!!!!

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

      Que videos o paginas recomiendas para reforzar o entender del todo lo que recomiendas?

  • @Mofumofu-rw5eb
    @Mofumofu-rw5eb 3 года назад +1

    4:15
    Sandra es directora comercial de una empresa, gana 85mil euros y tiene solo 8 años. Increíble, y yo aquí aprendiendo a usar java para ver si saco un futuro.

  • @axlrose08
    @axlrose08 4 года назад

    El mejor tutorial de la historia.

  • @yacoobsc.m3269
    @yacoobsc.m3269 8 лет назад +1

    Perfecto explicado y ejecutado... este fue el resultado que me salio a mi jejejeje
    Un miembro de la directiva a tomado la decision de petar la empresa toda por los aires!!! :)

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +1

      +Rey Relampago Cortina No es extraño. Ha pasado más veces ... Mucho estress

  • @audiomotivaciones8675
    @audiomotivaciones8675 4 года назад +1

    gracias por la clase

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

    Saludos profesor....en este tema de las interfaces me he caído y aun no me levanto.... Gracias por el curso...

  • @walterjosesuarezdelacruz1495
    @walterjosesuarezdelacruz1495 5 лет назад +4

    Profesor llegué al vídeo 220, pero lo he dejado porque no podré verlo con paciencia, pero espero terminarlo máximo en Marzo del otro año.
    Tengo una duda, es con respecto a esto:
    Comparable elwe2=new Empleado("john Lenon",85000,1990,12,17);
    que beneficios tiene hacer este tipo de instancia empezando con la interfaz y terminando con la clase Empleado
    se podría haber hecho así
    Empleado elwe2=new Empleado("john Lenon",85000,1990,12,17);
    me podría decir las ventajas, o es que está explicado en vídeos anteriores? aunque me he visto todos en orden hasta el 220

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

      Hola, cuando el dice que se instancia del objeto Comparable quiere decir que el objeto instanciado de new Empleado va a adquirir todos los metodos que tiene la interfaz comparable, es decir, solo usas las interfaces para que las clases instanciadas por otros objetos y que se guarden en el tipo de objeto interfaz tengan los metodos de esta.

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

      @@santiagoluna4273 Hola. Yo también tengo la misma duda que tenía el compañero
      @walterjosesuarezdelacruz1495 No entiendo para qué sirve instanciar de esta manera. La explicación que diste no la acabo de comprender. La instancia de Empleado ya hereda los métodos de la clase, entre los cuales ya se encontrará el que se tuvo que sobrescribir obligatoriamente (compareTo) al implementar la interfaz Comparable.

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

    Bien, esta clase si fue muy fácil de entender y en comparación con el "enum" del vídeo 48 esta se ve aún más simple.
    El vídeo anterior (49) me costó entenderlo porque no sabia exactamente lo que hacia el «this» resulta que es muy simple lo que hace, solo que en el vídeo donde se explicó no lo entendí correctamente, pensé que el «this» hacía referencia a la variable de clase, pero no, hace referencia a las variables de los objetos de la clase "Empleado", o sea, a las "copias" de esta (como explicó el profesor Juan en uno de sus vídeos). Al menos así es como yo entiendo su funcionamiento, espero no estar equivocado, si alguien puede corregirme lo agradeceré.
    Por cierto, el código funciona correctamente sin el this. al menos en esa ocasión, en otras si podría presentar problemas no colocarlo.

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

    Fenomenal explicación

  • @giomarsalazar7547
    @giomarsalazar7547 6 лет назад

    Llegue a la primera estación me falta cada vez menos en hacer Cumbre...Gracias Profesor....Agradecido..

  • @jmansanetperez
    @jmansanetperez 6 лет назад +1

    Gracias.

  • @juanmanuelsalinas4833
    @juanmanuelsalinas4833 4 года назад

    gracias por tanto!

  • @ivanmalaiu
    @ivanmalaiu 4 года назад

    Excelente video

  • @javiermonzon4156
    @javiermonzon4156 4 года назад

    buen video, muchas gracias, es hora de ordenar un poco mi codigo

  • @josepmontalt5829
    @josepmontalt5829 9 лет назад +1

    Siguiendo con la pregunta anterior, ¿se puede dar el caso de que nos interese hacerlo de esa forma en algún caso? Porque veo que se puede hacer pero no le veo las ventajas. Muchas gracias de nuevo.

  • @KingKilleer96
    @KingKilleer96 8 лет назад +1

    Maravilloso.

  • @sebastianpineda7670
    @sebastianpineda7670 4 года назад

    Hola, Excelentes videos... Eres un gran profesor. Despues de ver estos primeros 50 videos tienes ejercicios donde podamos aplicar todo lo visto o recomendar alguna pagina de ejercicios.
    Gracias por compartir todos estos videos.

  • @pablocarranza7832
    @pablocarranza7832 10 месяцев назад

    profesor y bueno compañeros tambien queria agregar algo para que no sea motivo de confunsión cuando esta en el power point y esta explicando como debemos usar el INSTANCEOF....
    me di cuenta que el ejemplo en el power point deberia ser el siguiente
    Compable ejemplo = new empleado(" Antonio" 56000,2013,10,3);
    if (ejemplo instanceof comparable){

  • @mohtadibakali1557
    @mohtadibakali1557 5 лет назад +3

    Es curioso que la media de visualizaciones en los videos era de mas de 100.000 y cuando se ha llegado al capitulo de las interfaces la gente gente se ha desanimado, ahora es el momento de seguir

    • @pildorasinformaticas
      @pildorasinformaticas  5 лет назад +2

      Siempre pasa en los cursos: es ley de vida. En los cursos presenciales es igual: el primer día de curso la clase está llena. A medida que avanza van apareciendo sillas vacías. Un saludo!

    • @mohtadibakali1557
      @mohtadibakali1557 5 лет назад

      @@pildorasinformaticas Mas claro no se puede explicar, a dia de hoy la inspiracion divina que yo sepa no existe lo que existe es el trabajo y la constancia

  • @darlinlopez8955
    @darlinlopez8955 8 лет назад +7

    Buenas Profesor, sus videos son excelentes ahora mismo voy por el 51, pero quisiera saber hasta donde debo llegar para poder pasarme a Android?.

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +4

      Hola !! La verdad no sabría decirte un nº exacto de vídeo hasta el que debas ver, pero recomiendo ver los temas de POO, Threads, Excepciones y eventos. JDBC tampoco vendría mal. Un saludo!!

  • @zidarkz
    @zidarkz 6 лет назад +11

    Estimado, aún no entiendo muy bien algo.
    ¿En qué casos se usa interfaces?

    • @CyberBotMan
      @CyberBotMan 4 года назад

      Eso depende de como vas a organizar tu proyecto. No se si me explico

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

      Se usan las interfaces en vez de la herencia multiple, ya que esta ultima no existe

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

      Herencia multiple. Digamos que estas creando un videojuego, hay distintas entidades: pajaros, zombies, aliens, etc y la gran mayoria de estos tienen un metodo en comun, acuchillar gente y deben de tenerlo si o si. Como ves estas entidades son muy distintas entre si, y lo unico que la mayoria de estas entidades tienen en comun es el acuchillar gente, implementar la interfaz donde solo hay un metodo: acuchillarGente(); bastara. Entonces las entidades que acuchillen Gente simplemente se les implementa la interfaz, se les coloca su metodo y listo.
      Por que no usar Herencia por clase? bueno, si queres que si o si tengan el metodo cuchillarGente() con herencia por clase no se podria, porque no es obligatorio usar los metodos heredados.
      Supongamos que tengo una clase abstracta con el metodo acuchillarGente() y esta le va a heredar a cada clase que acuchille gente, bueno, esta genial y seguramente sirva el codigo, nadie dira que no, pero con interfaz es mucho mas facil porque digamos que si en algun momento me interesa tambien agregar la funcionalidad de hacer caca a la gente pues no podria heredar este metodo a otras clases porque no existe la multiherencia, pero con la interfaz si se puede y ademas lo hago una obligacion implementar los metodos abstractos para las clases que yo quiera de esa forma me aseguro que tengan los metodos y que ademas pueda hacer "herencia multiple"

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

      @@Abstractor21 gracias 🤩

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

      @@nataliegomez480 me alegra haber ayudado

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

    Llegado este punto, he de complementarlo con teoría y otros cursos

  • @albertoherdez9764
    @albertoherdez9764 8 лет назад +2

    He aprendido bastante!!! eres buen docente!! y es un excelente canal!! y agradezco, pero estoy en desacuerdo en que las clases las hagas en un mismo archivo, eso confunde bastante! o al menos en mi caso asi lo es!! no comprendo cual es el objetivo de hacerlas asi

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +alberto herdez Hola !! Gracias por el comentario. Al comienzo del curso expliqué que una buena práctica en programación consiste en "modular" un programa, es decir, dividirlo en módulos, partes (lo que serían archivos en Java). En la parte dedicada a POO así lo hago para que se vea en qué consiste, pero en el resto del curso para aplicaciones sencillas lo hago todo en el mismo archivo. Es cierto que esto puede confundir, pero uno también tiene sus manías que cuesta abandonar. Un saludo!!

  • @carlosperianez4111
    @carlosperianez4111 8 лет назад +7

    Tengo una duda existencial, quizá ya no por las interfaces en sí, si no posiblemente por la aplicación de la Interfaz Jefes en este ejemplo en concreto.
    ¿Qué diferencia habría en este caso entre implementar una interfaz Jefes para estar obligados a desarrollar un método tomaDecisiones si podemos crear ese método directamente en la clase Jefatura y dejarlo hecho? Es decir, en ambos casos la clase Jefatura tendría dicho método. ¿Porqué utilizar una Interfaz para ello?
    Por ejemplo, entiendo que en la clase Persona escribamos un método abstracto para la descripción, porque entiendo que TODAS las clases que hereden de Persona tienen que tener ese método y desarrollarlo dentro de esas clases.
    Entonces si viene otro programador y quiere crear una clase que herede de Persona, estará obligado a implementar ese método y a desarrollarlo como quiera.
    Pero en el caso de la interfaz Jefes, si viene un programador y quiere utilizar la clase Jefatura, en la que obligatoriamente tiene que haber un método tomaDecisiones, ¿qué más le dará que esa clase implemente una interfaz para tener un método tomaDecisiones en la clase Jefatura que tener el método creado directamente ya en la clase?
    No sé si me hago entender.
    En este sentido entiendo muy bien, dentro de la herencia, el porqué de los métodos (y por ende de las clases) abstractas. Pero con las interfaces no llego a comprenderlo del todo. Entiendo que escribiendo una interfaz, si una clase implementa esa interfaz está obligada a implementar todos sus métodos, pero si quieres que esa clase tenga esos métodos, ¿porqué no escribirlos directamente dentro de la clase?
    Es posible que luego a lo mejor al desarrollar la idea de interfaz o al desarrollar el ejemplo mas adelante, posiblemente acabe teniendo sentido para mi, pero ahora mismo no alcanzo a comprenderlo. Por eso dije al principio que es posible que sea por el ejemplo y no por las interfaces en si, porque por ejemplo, con la interfaz Comparable o con otras interfaces ya escritas que he tenido que utilizar (para midlets y esas cosas) si que les veo el sentido.

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +4

      +Carlos Periañez Hola !! ¿Cómo harías si eres un programador que quiere heredar de Jefatura pero la clase que estás construyendo ya hereda de otra que no es Jefatura?

    • @carlosperianez4111
      @carlosperianez4111 8 лет назад +1

      +pildorasinformaticas Supongo que la solución sería crear una interfaz, en este caso utilizar la interfaz Jefes, metiendo quizá algún método más ¿no?

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +3

      +Carlos Periañez Metiendo un método más en el caso de que lo necesites. Pero efectivamente como Java no tiene herencia múltiple, la única forma de hacerlo sería utilizando una interfaz.
      Un saludo

    • @carlosperianez4111
      @carlosperianez4111 8 лет назад +1

      +pildorasinformaticas Muchas gracias profe. Todo mas claro ahora.

  • @a.cesarcorteso.9828
    @a.cesarcorteso.9828 10 лет назад +4

    Saludos Juan, excelente curso. Una duda en el uso de - instanceof - se pregunta que si es de tipo de clase Empleado para decir que es de tipo Jefatura. Gracias por tu atención. min 6:00

    • @pildorasinformaticas
      @pildorasinformaticas  10 лет назад

      A. Cesar Cortes O. ¿Me equivoqué? Lo revisaré. Gracias por la advertencia. Un cordial saludo

  • @agustinchavez4836
    @agustinchavez4836 8 лет назад +3

    Hola ! Muchas gracias por los videos, el curso es excelente y muy bien explicado.
    Alguien tiene ejercicios para practicar que pueda compartir?
    Saludos :)

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +Agustín Chávez Es mi intención ir colgando ejercicios en mi web para compartir... pero lo llevo diciendo hace tiempo. A ver si saco tiempo. Un saludo

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

    Minuto 4:25 una minúscula acotación para los que viene atrás, Juan dijo "un jefe siempre es un directo comercial", lo que realmente quiso decir es que un Jefe (una instancia de la clase Jefatura clase hija) SIEMPRE ES UN EMPLEADO (clase padre empleado), principio de sustitución "Se puede usar un objeto de la clase hija, SIEMPRE que el programa espero un objeto de la clase padre, por la regla SIEMPRE ES.... por ahora vamos bien, a ver que tal cuando en producción toque mirar n cantidad de líneas de código y n cantidad archivos/ficheros hechos por otros, con otra lógica

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

    El curso es muy bueno, no obstante, debería realizar nuevo código, aunque sea simple, para explicar los temas nuevos.

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

    Gracias

  • @AlfonsoIzaguirreMtz
    @AlfonsoIzaguirreMtz 8 лет назад +4

    +pildorasinformaticas Llevo semanas esperando a llegar a Swing (segun yo, son las aplicaciones gráficas que se le pueden dar, y como me quiero dedicar a diseño de videojuegos...)... Muchas gracias por todo lo que me has enseñado :D No falta mucho para entenderle al 100% a la estructura de Java y entrar en Android? :D

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +2

      +Alfonso Izaguirre Hola !! Gracias por el comentario. No, no falta mucho. Con entender la POO, las excepciones, los eventos.... es suficiente. Un saludo

    • @stelin41_es
      @stelin41_es 6 лет назад +3

      Si lo que quieres es hacer videojuegos te recomiendo utilizar un engine como unity y unreal engine 4, no digo que no se puedan hacer en Java, solo digo que si haces este curso por el desarrollo de videojuegos los engines te facilitan mucho el trabajo además ellos se encargan de que tu juego se pueda ejecutar en cualquier plataforma

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

    Excelentes videos, gracias de antemano. Sin embargo, pienso que todo el curso lo esta haciendo en un solo fichero y me queda demasiado desordenado y pues, provoca confusion en algunos estudiantes. Pienso que eso se puede mejorar. Saludos"

  • @luisescobar1534
    @luisescobar1534 8 лет назад

    Ingeniero muchas gracias por su canal, la verdad es de muy gran utilidad y me ha servido muchisimo.Ahora tengo la siguiente duda con respecto al codigo de instanceof.Empleado director_comercial=new Jefatura("Sandra",85000,2011,4,5);
    Comparable ejemplo = new Empleado("Elizabeth",89000,2000,2,1);
    if(director_comercial instanceof Comparable){
    System.out.println("porque???");
    }
    if(ejemplo instanceof Empleado){
    System.out.println("tambien porque???");
    }Como puedes ver en el codigo, los if los realice con director commercial y comparable. Y el otro entre ejemplo y Empleado.
    En ambos casos entra en el If imprimiendo los S.O.Pln
    A que se debe?
    muchas gracias por su ayuda

  • @alanmelgar4447
    @alanmelgar4447 8 лет назад +1

    hola juan primeramente agradecerte por tu paciencia y dedicación en los vídeos , quería saber algún consejo para que tanto código , sintaxis, reglas, aprendiendo asta ahora no se me haga un rompecabezas con las piezas desordenadas es decir que me olvide tal sintaxis o como era , tomo apuntes siempre.

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +1

      +alan melgar Hola !! Gracias por el comentario y por seguir mis vídeos. Lo normal es que alguien que aprende un lenguaje complejo como Java desde 0, es que haya momentos que se vea desbordado por tanta información, tanto código y tanta instrucción. Lo importante es entender bien los conceptos: por ejemplo la POO, qué es una clase, una instancia, la herencia, la encapsulación etc. Es normal que haya que ver varias veces los vídeos para entender algunos de estos conceptos, y también recomiendo buscar información en otros sitios (google, otros canales de youtube etc) cuando algún concepto no se entiende. Cuando algo te lo explican varias personas diferentes, al final siempre se termina entendiendo.
      El resto de cosas como la sintaxis, acordarte de las llaves, los puntos y comas, del nombre de los métodos etc son cosas menos importantes ya que se aprenden con la práctica. Además siempre tienes la API de Java para consultar y por supuesto también Google.
      Un saludo!!

    • @alanmelgar4447
      @alanmelgar4447 8 лет назад +1

      Gracias juan por responder , El unico concepto complicante es el polimorfismo pero le llegare a entender a paso del tiempo 😅.

  • @juanpamontoyav
    @juanpamontoyav 9 лет назад +1

    min 13:30 con referencia a las interfaces, si hubiésemos declarado el método para subir incentivo dentro de la clase jefatura, nos hubiésemos ahorrado la interfaces, y así obligamos a que la usen todas las clases que extends de esta. no?
    o es necesario hacerlo con interfaz.
    en si el uso de la interfaces creó entenderlo pero no me queda 100% claro de cuando debo usarlo.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +1

      +juanpamontoyav Hola !! Si creas el método dentro de la clase Jefatura, las clases que hereden de Jefatura tendrán ese método. Pero es muy probable que las clases que extends de Jefatura no necesiten que el método sea igual que el de Jefatura. Por ejemplo imagina que una clase llamada "Dirección" hereda de Jefatura. esta clase Dirección hereda el método para subir incentivo, pero lo más probable sea que no nos sirva porque el incentivo a subir no será el mismo en un Jefe que en Director.
      Antes esta situación, el programador puede ser que se le "olvide" sobreescribir el método subir_Incentivo que hereda de Jefatura en la Clase "Dirección" con lo que nos encontraríamos ante un error ya que este método no es válido para Dirección tal como se hereda de Jefatura.
      El declararlo en una interfaz soluciona este problema ya que te OBLIGA a volverlo a escribir en la clase Dirección mientras que si lo heredas no te obliga.
      Un saludo

    • @juanpamontoyav
      @juanpamontoyav 9 лет назад

      Es decir que al no estar obligado a reescribirlo, podríamos causar un error ya que usariamos el método subir incentivo de la misma forma en clase Jefatura y clase Dirección.
      (Y claro no tienen el mismo incentivo, uno ganas más que el otro jeje).
      Muchas gracias por tus aclaraciones son muy valiosas, sigo retomando los vídeos, voy por el 60 pero repitiendo desde el 50 jeeje que cada vez se complican más y debo repasarlos.
      Ya tendré tiempo para realizar ejercicios.
      Gracias pildoras!!!

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      Exacto !! Veo que lo entendiste. Efectivamente, los vídeos se complican a medida que avanzamos. Espero que no sea un obstáculo insalvable para ti. Un saludo

  • @yeisonjaramillo2184
    @yeisonjaramillo2184 5 лет назад +1

    He llegado al 50 y ya veo por partes....💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡

  • @juancarlosrios1447
    @juancarlosrios1447 8 лет назад +2

    Me encanta el comentario del 17:51. Supongo que el profo tendra recuerdos personales xDD.

  • @Gabriel-do4ds
    @Gabriel-do4ds 11 месяцев назад

    Básicamente, las interfaces te obligan a imprementar metodos?

  • @christianguaman9126
    @christianguaman9126 8 лет назад +1

    Una pregunta para estar seguro de este concepto. Cuando creabamos las clases abstractas ademas de tener metodos abstractos podian tener metodos "normales", pero en una interfaz estrictamente todo debe ser abstacto.

  • @luigichanduvi
    @luigichanduvi 9 лет назад +2

    Hola excelente video y muy bien explocado, tengo una duda en el video tu comentaste que era "public abstract String metodo" = "String metodo", que era lo mismo ponerlo de una forma u otra, yo lo puse de la primera forma y cuando lo estaba implementando la interfaz en mi clase jefatura me salio error, mas no fue hasta cuando le borre el public abstrac que se soluciono, a que se debe eso si en teoria es lo mismo "Public abstract String metodo" = "String metodo ???

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      Adolf Hola !! Dime minuto y segundo del vídeo donde comento lo que tú dices, por favor. Un saludo

  • @alpm495
    @alpm495 6 лет назад

    Excelente vídeo gracias, una duda si por ejemplo tengo una clase A que implementa una interface D, y tengo una clase B que hereda de la clase A, la clase B tiene obligatoriamente que implementar la interface D ??, gracias por cualquier info

  • @luissifontes6783
    @luissifontes6783 7 лет назад +3

    Hola! ahora conociendo las interfaces, cuándo debería usar una clase abstracta y cuándo una interfaz?

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад +7

      Cuando necesites crear una estructura con métodos abstractos pero también con métodos que no sean abstractos, utilizarás una clase abstracta. Cuando necesites crear una estructura cuyos métodos son todos abstractos, utilizarás una interfaz. Mira esto: rocixcode.wordpress.com/2011/02/11/clases-abstractas-vs-interfaces/
      Saludos!!

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

      @@pildorasinformaticas Excelente respuesta.

  • @rodriguezallendy5940
    @rodriguezallendy5940 5 месяцев назад

    hola buenas noches querido maestro. tengo una duda y es que de que me sirve crear una instancia de tipo interfaz, pero luego llamar al constructor de la clase que la implementa o de llamar a aun constructor que herede de la clase que implementa la interfaz.?? porque por ejemple, si que me sirve crear una instancia de tipo empleado, y luego llamar al constructor de jefatura, porque en este caso puede que si me interse volver a un empleado comun y corriente en un jefe... o acenderlo a jefe si asi lo ponemos..

  • @danielballesterourena7464
    @danielballesterourena7464 8 лет назад +1

    Muy buenos

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

    Básicamente se podría decir que una interfaz es una clase estrictamente abstracta?

  • @sebastiansagrario8684
    @sebastiansagrario8684 3 года назад +1

    una interface no es solo una directiva de que metodos se deben aplicar ? no me termina de cerrar que una interface pueda ser una instancia de una clase.

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

      Tengo ahora mismo la misma duda. No entiendo el motivo, o mejor dicho, la necesidad. Entiendo que se pueda hacer, pero aún no soy capaz de ver para qué, su utilidad.
      Si tú, después de estos dos años ya lo tuvieras claro, sería muy de agradecer que me lo explicaras, porfa. ;)

  • @andresgarciaaragon4733
    @andresgarciaaragon4733 8 лет назад +1

    muchas gracias me a servido de mucho quisiera si es que se puede plantear un sistema de super mercado con control de ventas e inventario

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      Gracias por el comentario. Sí, claro que se puede. Todo es posible, pero es algo complejo y a estas alturas del curso aún no sabemos lo suficiente. Para hacer algo tipo inventario hay que manejar swing, eventos, threads y BBDD. Un saludo!!

    • @osvaldoleiva678
      @osvaldoleiva678 7 лет назад

      Hola, te recomiendo que veas los cursos de este canal de BBDD access

  • @e.vargas5076
    @e.vargas5076 4 года назад +1

    ¿Por qué utilizas una interfaz para ese método si se puede agregar a la clase jefe, no daría lo mismo? Esa es la duda que más tengo en clases abstractas e interfaces el concepto lo entiendo lo que no entiendo es cuando aplicar cada caso

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

      Seria para asegurarte que otros programadores implementen ese metodo de manera obligada, si cada quien escribe ese metodo en la clase jefe que cada uno instancia, puede suceder que alguno omita el metodo o lo haga de manera diferente, simplemente es una manera mas de programar, como dice el profe píldoras para programar hay varios caminos y uno toma el que mejor entienda, personalmente uso las interfaces cuando tengo que usar un CRUD porque los metodos son los mismo sin importar que clase sea.

  • @HM-if5cu
    @HM-if5cu 5 лет назад

    Hola, primero agradecer por hacer estos vídeos, en realidad son de mucha ayuda. Ahora bien, lo que pasa es que he intentado usar la clase jefatura instanciandola de esta forma: Empleado jefe=new Jefatura(parametros)... y además,
    implementé la interfaz que realizaste en el vídeo a la clase Jefatura y veo que no es posible usar el método "tomar_Desiciones", ¿no debería funcionar teniendo en cuenta el principio de sustitución? Muchas gracias.

    • @gabrielruiz1933
      @gabrielruiz1933 5 лет назад

      Yo tambien tengo esa duda, sin embargo en el codigo del video hay algo similar a esto:
      misEmpleados[1]= new Jefatura("pedro",20000,2000,11,05);
      y en otroa linea
      Jefatura jefealmacen=(Jefatura) misEmpleados[1];
      la posicion 1 del array misEmpleados lo esta declarado como Empleado y tiene los atributos de Jefatura pero no me deja usarmisempleados[1].tomar_decisiones como dices, ya haciendo la segunda linea de codigo que te muestro donde jefealmacen.tomar_decisiones ya es posible

  • @josemariafragozocruz4335
    @josemariafragozocruz4335 4 года назад

    hola juan gracias por tu enseñanza ; me queda una duda respecto a la ilustracion que usas en el minuto 2:00
    donde clase empleado hereda directamente de la interfaz comparable cuando yo entiendo que esta interfaz esta paralela a clase empleado, y en el minuto 8:30 veo las interfaces al lado de las clases tal como lo he entendido.
    y una pregunta adicional es : si otro programador decide crear otra clase que herede de jefatura , tambien estaria obligado a desarrollar los metodos de la interfaz jefes....
    gracias por adelantado juan.

  • @juanbg100
    @juanbg100 9 лет назад +1

    Hola muy buenas!, un saludo muy grande y como siempre infinitas gracias por compartir tu saber, se que estoy atrasado, pero me esforzaré para ir a la par (:.
    Me surge la duda, se que es bastante obvio pero, tengo que poner el "implements" para que se obligue a la clase a implementar ese método cierto?, Si yo lo omito en teoría no pasaría nada.
    Tengo esa pequeña duda, de ante mano mil gracias!!.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      Juan BG Hola !! No recuerdo ya de qué hablábamos exactamente en este vídeo porque hace tiempo que lo grabé. El implements se utiliza en Java para que una clase lleve (implemente) una interfaz. Que una clase implemente una interfaz, obliga a que debas definir en esa clase todos los métodos de la interfaz.
      Un saludo

  • @jorgedari8501
    @jorgedari8501 5 лет назад

    Hola. Sigo con atención tus vídeo de herencia de java. Te pregunto. Tengo que resolver un problema con herencia y me gustaria que lo miraras para decirme si esta bien modelado antes de empezar a codificar. Si es posible porque medio te lo puedo enviar. Atte Dari Jorge (Estudiante)

  • @DanielHernandez-wi1mg
    @DanielHernandez-wi1mg 9 лет назад +1

    Hola!!! En principio muchas gracias por el curso y por tu dedicación. Tengo una duda, si quisiéramos utilizar los métodos de una subclase, como en este caso es jefatura, con un objeto tipo empleado, que deberíamos hacer algún tipo de Cast?. En la misma linea, cuando defines el objeto director_comercial (Empleado director_comercial=new Jefatura (parámetros)) en este caso el director comercial no puede usar los métodos de la clase Jefatura aun siendo un jefe, ¿Tendría que hacer algún casting?
    De nuevo un Saludo e infinitas gracias por el gran trabajo que haces

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +2

      Daniel Hernandez Hola !! Podrías hacer un cast pero antes de eso te tienes que preguntar si el diseño de tu herencia es correcto. En principio no tiene mucho sentido en el diseño de la herencia tener la necesidad de utilizar un método de una subclase con una instancia de la superclase.
      Un saludo

  • @SantiagodelosSantos
    @SantiagodelosSantos 8 лет назад +1

    Algo que no entiendo, o tal vez no vi por torpe, al hacer el metodo tomar decisiones, pusiste tomar_decision(String decision) , anteriormente no declarabamos: this.decision=decision; ? por que esta vez no?

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +Santiago de los Santos Hola !! hace tiempo que grabé este vídeo y no recuerdo que hacía en él. Dime por favor minuto y segundo del vídeo donde aparece la duda para que pueda ir directamente y responderte mejor. Un saludo

    • @astridbompart3394
      @astridbompart3394 8 лет назад

      +Santiago de los Santos Según entiendo, no lo coloca porque es un método getter sencillo y no va a realizar ninguna ecuación ni nada por el estilo

  • @avenezuelan
    @avenezuelan 7 лет назад +1

    Hola profe! A ver si lo entendí bien... las interfaces se crean para tener un mejor orden y asegurarse de que ciertas clases tengan métodos que deberían de tener por ser de ese tipo, cierto?
    Gracias!

    • @avenezuelan
      @avenezuelan 7 лет назад +1

      Ahora que se me ocurre (siempre se me ocurren las cosas después de comentar jaja, perdona), a ver, digamos que yo creo una interfaz diseñada para los Jefes. Sin embargo, le toca a otro programador crear la clase Jefe. Y éste la crea sin implementar la interfaz porque no sabía de ello o no lo quiso hacer.
      Y ahí es donde viene mi pregunta: ¿Sería posible obligar a que una interfaz se conecte con cierta clase al crearla? supongo que no, ya que el programador pudiera crear una clase Jefatura, Jefes, JoF... como le venga en gana llamarla. Por lo que supongo que el programador encargado de crear las clases también debería crear las interfaces.
      Y a ver, aquí viene una última duda, y perdona tanto rollo. Si el programador sabe que métodos debería tener una determinada clase, no sería como inservible la interfaz? porque lo único que hace es obligarte a crear ciertos métodos, hablo de las interfaces que uno mismo crea, de seguro hay muchas bastante buenas en la API y que sirven para todo tipo de objetos, como la de Array. No lo sé, creo que me enrollé un poco. Espero que comprendas lo que trato de expresar.
      Gracias nuevamente profe!

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад +4

      "a ver, digamos que yo creo una interfaz diseñada para los Jefes. Sin embargo, le toca a otro programador crear la clase Jefe. Y éste la crea sin implementar la interfaz porque no sabía de ello o no lo quiso hacer. " Respuesta: Mala comunicación entre los programadores de un mismo proyecto. Esto ocurre en la vida real y luego hay por ahí aplicaciones con mucho código redundante que funcionan porque los milagros existen en informática.
      " ¿Sería posible obligar a que una interfaz se conecte con cierta clase al crearla? ! Respuesta: No, no es posible.
      " Por lo que supongo que el programador encargado de crear las clases también debería crear las interfaces." Respuesta: No necesariamente. Hay un montón de interfaces en la API de Java que estamos obligados a utilizar en nuestras clases (por ejemplo ActionListener para gestionar eventos) y no las hemos creado nosotros.
      "Si el programador sabe que métodos debería tener una determinada clase, no sería como inservible la interfaz?" Respuesta: Al contrario, resultarán muy útiles cuando vayas a elaborar más proyectos. Imagina que creas un programa que calcula salarios. Este programa tiene varios métodos construidos por ti que calculan el IRPF, Tasa de seguridad social y un montón de cosas más a tener en cuenta en los cálculos de los salarios de los trabajadores. Lo haces sin interfaces y funciona.
      Imagina que al cabo de una semanas tienes que volver a crear un programa muy parecido al anterior pero con algunas diferencias en los cálculos. Tendrías que volver a crear los métodos que ya hiciste en el otro programa con algunas pequeñas modificaciones. Imagina que meses después tienes que crear otro programa similar a los dos anteriores pero con alguna diferencia. Imagina que a lo largo de un año tienes que crear 40 programas similares pero con algunas diferencias entre ellos. Cada vez que tienes que elaborar un programa parecido, estás obligado a crear de nuevo los métodos del primer programa introduciendo algunas modificaciones. O bien hacer un copia-pega de los métodos del primer programa y después modificarlo a mano, o lo que es lo mismo, una chapuza.
      Si tú intuyes que vas a crear muchos programas similares, que tendrán casi los mismos métodos con algunas pequeñas modificaciones, lo suyo es crear una interfaz con esos métodos comunes a tus futuros programas y después implementar esa interfaz en todos los programas que vayan a funcionar de manera similar. Es decir, REUTILIZACIÓN de código, uno de los paradigmas de la POO y marcar pautas en el diseño de tus programas (obligas a que tus programas tengan los mismos métodos. Todo ventajas: mismo diseño de programas similares y no se te olvidará incluir ningún método ya que la interfaz te obliga a ello) otro de los paradigmas de la POO.
      Un saludo!!

    • @fernandocarlos9477
      @fernandocarlos9477 7 лет назад

      magistral respuesta

  • @danielhernandez5401
    @danielhernandez5401 4 года назад +1

    15/04/2020

  • @josepmontalt5829
    @josepmontalt5829 9 лет назад +2

    Hola Juan, tengo la siguiente duda.
    Como la clase Jefatura hereda de la clase Empleado puedo hacer esto:
    Empleado jefe_RRHH=new Jefatura("Juan",55000,2006,9,25);
    Pero entonces, ¿el objeto jefe_RRHH de qué tipo es? ¿De tipo Jefatura o de tipo Empleado? Porque he estado probando y he visto que si lo hago así el objeto jefe_RRHH no puede realizar un método de la clase Jefatura pero... llamamos al constructor de dicha clase no? Tengo dudas ahí. Gracias!

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      Josep Montalt El objeto jefe_RRHH es de tipo Empleado. Este objeto debe poder utilizar todos los métodos de Empleado a no ser que el método de Empleado sea private. Si no te sale pon el código a ver si te puedo ayudar. Un saludo

    • @juanjosemacias6337
      @juanjosemacias6337 9 лет назад +1

      Josep Montalt Hola! Estuve jugando un poco con el código, espero te ayude a comprender un poco mejor.
      Para hacer uso de los métodos de la clase Jefatura, hicimos un casting de la siguiente forma:
      Jefatura jefa_finanzas = (Jefatura)mis_empleados[5];
      jefa_finanzas.setIncentivo(50000);
      Solo se puede hacer casting para los empleados que son Jefes.
      Haciendo uso de instanceof con el siguiente for each:
      for(Empleado e: mis_empleados) {
      String tipoI = e.getNombre() + ", objeto ";
      if(e instanceof Empleado) {
      tipoI += "Empleado";
      }
      if(e instanceof Jefatura) {
      tipoI += ", Jefatura.";
      }
      else {
      tipoI += ".";
      }
      System.out.println(tipoI);
      }
      Para los objetos en el arreglo que son Jefes, el for anterior nos mostrara en consola Empleado y Jefatura, por la herencia un objeto Jefatura es siempre un Empleado.
      Juan pildorasinformaticas nos podría explicar mejor.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +8

      Juan pildorasinformaticas hace lo que puede con más de 100 dudas diarias de más de 10 tecnologías diferentes. No obstante hasta ahora el feedback de la claridad de las explicaciones es excelente

  • @yocpcastle2426
    @yocpcastle2426 4 года назад

    Uff!! llegué

  • @twiz1996
    @twiz1996 9 лет назад +2

    Hola excelente curso felicidades y gracias por el mismo solo me surge una duda y es respecto a la sintaxis por que al intentar primero implementar una interface y despues heredear una clase me salta error y al ponerlos inversa me marca como correcto? les dejo el pedazo de codigo para que me entiendan ;) seria muy bueno si alguien me explicara porfavor:
    public class pruebaH extends Jefe implements Jefes { **NO ME DA ERROR**
    public class pruebaH implements Jefes extends Jefe { ** ME DA ERROR**

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +3

      twiz1996 Hola !! Esto es simplemente una regla de sintaxis propia del lenguaje Java y que responde al trabajo interno que hace el compilador al pasar el programa a bytecodes. Lo primero que hace el compilador es mirar si la clase a compilar tiene superclases o no las tiene. Si le inviertes las intrucciones poniendo antes implements que extends le marcas al compilador que no hay superclases (ya que primero ve la instrucción implements) y después no entiende la instrucción extends. (se supone que ya debería de estar evaluada).
      Como esto no es fácil de entender, mi recomendación es que se tome como una regla de sintaxis sin más. Las combinaciones que se nos pueden ocurrir al cambiar el orden de las instrucciones en un programa Java son infinitas (por ejemplo ¿alguien ha probado si funciona "class public" en vez de "public class"? y si no funciona ¿por qué?).
      Si tenemos tiempo y ganas para probar estas combinaciones infinitas descubriremos que algunas funcionan y otras no. Si queremos encontrar la "lógica" y el sentido a estas combinaciones no tendremos tiempo para nada más.
      Igual que los lenguajes escritos (español, inglés, alemán etc) tienen reglas de sintaxis que no obedecen a ninguna razón "lógica" y que debemos aprender de memoria sin preocuparnos de su sentido (uso de la "b" y la "v", cuando debemos de poner "h" o no ponerla), ocurre lo mismo con los lenguajes de programación.
      Hay reglas de sintaxis que no obedecen a lógica alguna. Un saludo.

  • @albertogarcia2157
    @albertogarcia2157 7 лет назад +1

    Muchas gracias por este video PildorasInformaticas, tengo una duda dices que al crear un metodo en una interfaz al implementarla en otra clase tirara error si ese metodo no se esta usando, con las constantes creadas en las interfaz es igual?? es decir si yo creo varias constantes ya con valores definidos si implemento esa interfaz me tiene que tirar error si no se estan usando? porque tengo una clase a la cual le estoy implementando una interfaz pero solo tiene constantes con valores pero si no las uso no me esta tirando ningun error

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад

      No. Si la interfaz solo tiene constantes no habrá error si no usas las constantes. Pero creo que nunca vi una interfaz que solo tuviera constantes. No consigo verle la utilidad. Un saludo!!

    • @albertogarcia2157
      @albertogarcia2157 7 лет назад

      Pues la unica utilidad que le estoy es porque trabajo en la parte de automation testing y creo esas constantes en una interfaz con los nombre del Geckodriver, la direccion de la carpeta, y la url de la pagina en que hago el test, no se que digas si implementarlo de esa manera esta bien?

  • @alehop1223
    @alehop1223 7 лет назад +3

    Creo que entiendo la teoría de las interfaces, pero podrías aclararme un poco mejor su utilidad práctica? Son unos patrones de diseño que les damos a las clases para que estas incluyan en su código los métodos o constantes que creamos convenientes, ok. Pero no son patrones muy poco concretos? Quiero decir, que en la interfaz damos el nombre del método, el número y tipo de parámetros que recibe y lo que devuelve, pero el funcionamiento va a depender totalmente de lo que programemos en la clase. No está sujeto a ningún algoritmo ni nada. Las únicas "pistas" que nos da la interfaz de cómo queremos que funcione el método son su nombre y los tipos de datos que maneja, no? No es algo demasiado inconcreto o es que yo no lo acabo de entender?
    No se si he explicado mi duda de forma clara, si no contestas no te culparé xD. Un saludo!

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад +4

      Creo que te explicas. Hay dos formas de verlo: "poco concreto" lo cual sería una desventaja, o también "muy flexible" ya que permite implementar los métodos como desees, lo cual es una ventaja. Todo en Java tiene su función. Es muy posible que en un futuro hagas aplicaciones Java que no necesiten interfaces. Pero también es posible que colabores en proyectos grandes donde varios programadores vais a trabajar en el mismo programa y ahí si que empiezan a tener utilidad las interfaces. Un saludo!!

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

    👌👌👌👌👍👍✔✔✔✔🦾🦾🤗🤗👀👀😎😎🍺🍺viernes 07 de octubre 2022 10:00 A.M.

  • @SuperBlackBeto
    @SuperBlackBeto 5 лет назад

    Tengo 2 dudas, espero que alguien me las pueda resolver:
    Cuando se hace un metodo abstracto, con la clase abstracta, se define el metodo sin argumentos ¿Esto siempre debe ser asi? que no deba recibir argumento.
    Ya que la interfaz se hace el metodo abstracto recibiendo un argumento, y aqui me surge la segunda pregunta ¿Se puede decir que ese metodo abstracto de la interfaz que se creó, es como un setter y un getter al mismo tiempo?
    Espero me puedan ayudar, y gracias por estos tipos de videos que han ayudado a muchisimas personas incluyendome :D

    • @antoniol.9340
      @antoniol.9340 5 лет назад +1

      @Beto Diaz. En cuanto a la primera pregunta: no es obligatorio que los métodos abstractos deban o no recibir argumentos, es algo opcional o por lo menos cuando he hecho la prueba con un método abstracto que recibe argumentos, ni el IDE ni después la ejecución del programa me han devuelto error alguno.
      En referencia a la segunda pregunta: repasando (muy por encima) los vídeos del curso, compruebo que en el vídeo correspondiente (vídeo 30, a partir del minuto 5:15) el principio que caracteriza a un "setter" es que se trata de un método "definidor" mientras que los "getters" son "captadores". En el caso que nos ocupa en este vídeo, este método (según mi precario entender) no parece definir nada sino más bien captar. De modo que yo diría que este es únicamente un método "getter".