Curso Java. Tipos enumerados. Vídeo 48

Поділитися
Вставка
  • Опубліковано 9 лис 2024
  • En este vídeo atiendo la petición de algunos de vosotros de explicar los tipos enumerados en Java.
    Para más cursos, ejercicios y manuales visita: www.pildorasinf...

КОМЕНТАРІ • 329

  • @pildorasinformaticas
    @pildorasinformaticas  3 роки тому +9

    ✅✅ ✅ ✅ ✅ 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. 💥💥💥

  • @adriancordova1618
    @adriancordova1618 3 роки тому +60

    Otra vez este video es otro de los que me costó trabajo entender, pero finalmente lo entendí. En resumen, cuando declaramos una enumeración, por ejemplo así: enum colores {ROJO, VERDE, AZUL} lo que se hace realmente es crear un nuevo tipo de dato (por decirlo de alguna forma) que se llama "colores", por lo tanto, "colores" es un tipo de dato enumerado. Entonces, la siguiente instrucción: colores mis_colores; la variable "mis_colores" es una variable de tipo "colores", o sea, de tipo enumerado, que sólo permitirá los valores ROJO, VERDE y AZUL, y para asignar estos valores se tiene que hacer a través del tipo de dato "colores", así: colores.Rojo, colores.VERDE o colores.AZUL, porque los valores ROJO, VERDE y AZUL no son de tipo "String" ni nada de eso, son de tipo "colores", o sea, forman parte de una enumeración, son de tipo enumerado, son una enumeración!!! y además siempre se acceden a través del tipo de dato enumerado (colores) porque son propiedades privadas (por decirlo de alguna forma) y por tanto no son accesibles fuera de la declaración de la enumeración, por ejemplo, desde una variable de tipo "colores".
    El segundo ejercicio es más difícil de entender, les recomiendo que lo tengan a la vista a la par que leen lo siguiente. Cuando se crea el tipo enumerado "Talla" con su método constructor, con su método "getter" y con su propiedad "abreviatura", significa que cada valor de la enumeración (MINI, MEDIANO, GRANDE, MUY_GRANDE) tendrán una copia del constructor, del método "getter" y de la propiedad "abreviatura", por ejemplo, si creamos la siguiente instrucción:
    Talla t = Talla . MEDIANO;
    La variable "t" es de tipo "Talla" (de tipo enumerado) y está preparada para recibir los valores MINI, MEDIANO, etc., que son valores enumerados (accesibles a través del tipo de la enumeración). En este caso, a la variable "t" se le está asignando el valor enumerado MEDIANO, pero no sólo eso, si no que además se está invocando al constructor pasándole como argumento la cadena "M" y dentro del constructor se almacena la cadena "M" en la propiedad "abreviatura". Entonces, la variable "t" es en realidad un objeto que contiene 3 cosas: el valor enumerado MEDIANO; la propiedad privada "abreviatura" (la cual almacena la cadena "M"); y el método "getter" que devolverá el valor de la propiedad "abreviatura". Por lo tanto, la siguiente instrucción:
    System . out . println ( t + "(" + t . dameAbreviatura () + ")") ;
    Imprimirá lo siguiente por consola:
    MEDIANO(M)
    Otro ejemplo:
    Talla t1 = Talla . MINI;
    Talla t2 = Talla . MUY_GRANDE;
    Las variables "t1" y "t2", como ya mencioné anteriormente, tienen una copia del constructor, del método getter y de la propiedad "abreviatura". La instrucción "Talla . MINI" invocará al constructor pasándole la cadena "S" para que la almacene en la propiedad "abreviatura" y almacenará en "t1" el valor enumerado MINI. La instrucción "Talla . MUY_GRANDE" invocará al constructor pasándole la cadena "XL", éste almacenará dicha cadena en la propiedad "abreviatura" y finalmente almacenará en "t2" el valor enumerado MUY_GRANDE. Si se imprime la información de ambos objetos por consola, así:
    System . out . println ( t1 + "(" + t1 . dameAbreviatura () + ")") ;
    System . out . println ( t2 + "(" + t2 . dameAbreviatura () + ")") ;
    En consola se imprimirá lo siguiente:
    MINI(S)
    MUY_GRANDE(XL)
    Observación curiosa: en el minuto 19:57 del video aparece en el asistente de Eclipse la propiedad privada "abreviatura", ¿no se supone que no debe de salir porque es privada? ¿y sólo es accesible dentro de la enumeración? Mi única respuesta por ahora sobre esto es que las enumeraciones al no ser clases tal vez el comportamiento de los modificadores de acceso es diferente.

    • @dsc_dsc
      @dsc_dsc 3 роки тому

      Gracias.

    • @Rebeu-xr3xq
      @Rebeu-xr3xq 2 роки тому +3

      Bien desgranado. El único "problema" del vídeo es que se explica muy sobre la marcha que una constante enum puede tener campos (que de primeras resulta extraño) y que el comportamiento de asignación y recuperación es como el de una clase, que aplica a cada uno de esos elementos constantes.

    • @eliasnovelo6502
      @eliasnovelo6502 Рік тому +2

      @@Rebeu-xr3xq Mucho texxxto

    • @emersontavera9362
      @emersontavera9362 Рік тому +1

      ChatGTP me dio esta respuesta, al dia de hoy sabes por que?
      The reason for this is that enums in Java are a special type of class, and their instances are treated like static final fields. This means that the fields of an enum instance, including private fields, can be accessed directly from outside the enum, just like accessing the fields of a regular class's static final fields.

    • @wageningen.
      @wageningen. Рік тому

      Cuanto entusiasmo, mola ver gente así

  • @pildorasinformaticas
    @pildorasinformaticas  10 років тому +115

    Oscar Ballart: Voy a intentar resolver tu batería de dudas:
    1) Efectivamente no se trata de un Array, sino de una clase (Talla) que posee en nuestro ejemplo cuatro ejemplares (MINI, MEDIANO, GRANDE y EXTRA_GRANDE) denominados "Constantes enumeradas" en la que no se pueden añadir más ejemplares a posteriori.
    2) Los valores en mayúsculas se definen como "Constantes enumeradas". No son Arrays, fuera esa idea de la cabeza!
    3) Al escribir final String[] Talla={“MINI”, “MEDIANO”, “GRANDE”, “MUY_GRANDE”} lo único que estás haciendo es impedir que se pueda redefinir el Array en el futuro como por ejemplo: Talla =new String[7]; ya que ha sido declarado como final. Pero si que puede hacer lo siguiente: Talla [0]="EXTRA_GRANDE" a pesar del final. La solución para no poder modificar los valores almacenados en un Array pasaría por almacenar objetos inmutables (hablaremos de ello).
    4) CORRECTO !!
    5) La definición correcta que te darán todos los libros es "Constantes enumeradas". Son en definitiva ejemplares de clase pertenecientes a la clase enumerada Talla. Creo que a estas alturas de curso, todos sabemos lo que es un ejemplar de clase. ¿Por qué entonces la definición de constante enumerada? "Constante" porque no pueden cambiar una vez definidos (no existe ni podrá existir Talla.MEGA_GRANDE) y "enumerada" porque la clase Talla hereda de la clase enum de la API Java. Siempre que crees en tus programas un tipo enumerado, estás heredando de la clase enum de la API. Por tanto podrás utilizar todos los métodos pertenecientes a enum reflejados en la API (tal y como hacemos en nuestro código con valueOf por ejemplo)
    6) private Talla(MINI(“S”) . El this hace referencia siempre al parámetro implícito. Como siempre intento utilizar la menor "jerga" de programación posible para no asustar a nadie, yo hablo de objeto cuando me refiero al parámetro implícito. Es decir, el this hace referencia al objeto. En la instrucción this.abreviatura=abreviatura, el this hace referencia al campo de clase abreviatura (la variable abreviatura del objeto), mientras que abreviatura a secas hace referencia al parámetro del constructor. Es por este motivo por el cual realmente es Talla.MINI("S").
    Cuando construyes una constante enumerada, estás invocando al constructor (al de la clase enum de la API si no has declarado tú otro constructor, o al que has creado tú como es nuestro caso). Al escribir enum Talla{ MINI("S")....... ahí ya hemos invocado (llamado) al constructor (private Talla (String abreviatura){...}) ¿Dónde se asocia la "S" a la constante enumerada MINI?? Precisamente al invocar al constructor: en MINI("S"). La "S" viaja al parámetro del constructor (explícito) y se almacena en abreviatura. De esta forma queda asignada la "S" a la constante que invoca (llama) al constructor, en este caso MINI.
    7) Esta duda se arrastra de antes. Son constantes enumeradas
    Este vídeo lo puse como respuesta a una petición que me hicisteis varios de vosotros. Estoy dudando de si lo he subido en el momento adecuado, tal vez debí esperar a avanzar un poco más. No os preocupéis si no se ha entendido este vídeo. No influye en el desarrollo de los siguientes. Suelen poner cosas de tipos enumerados en los exámenes de certificación (OCPJP de Oracle).
    Saludos !!

    • @alejandrocastillo9260
      @alejandrocastillo9260 10 років тому +27

      A mi me ha parecido el vídeo más difícil hasta el momento. Lo dejaré un poco a un lado para ver si más adelante lo entiendo.

    • @paulcano3840
      @paulcano3840 9 років тому

      La verdad, que un poco más difícil sí que es. Hay que tener muy claro conceptos anteriores(Herencia, instanciar Objetos, etc.). Me parece que haces lo mismo que antes, pero con una sintaxis un poco diferente al tratarse de una Clase enum ¿no? ¿Puede ser que sea como un tipo de Encapsulación, mucho más restrictiva, que cualquier modificador de acceso?

    • @paulcano3840
      @paulcano3840 9 років тому

      Muchísimas gracias por responder. Muchas de las dudas que has contestado las tenía yo también. Ahora toca estudiarlo bien :-)

    • @davidm.p.6488
      @davidm.p.6488 9 років тому +2

      pildorasinformaticas Gracias por tomarte el tiempo es contestar a todo. Creo q a mas de uno nos ha venido bien, xq para mi de los 48 videos q llevo, ha sido el de mas dificil comprension, y las duas mas o menos vienen q ser las mismas. Un saludo!

    • @antoniocascales3615
      @antoniocascales3615 9 років тому +1

      pildorasinformaticas Hola, buenas noches:
      Ante todo, darle mi más sincera enhorabuena por este curso. Estoy siguiéndolo y me parece genial. Todo muy bien explicado y de forma incremental con una curba de aprendizaje (hasta ahora) muy asequible al menos para mí.
      Este ha sido el único vídeo en el que he tenido algún problema a la hora de seguirlo, pero debo decirle que es por motivos estrictamente personales.
      Me gustaría aprovechar y hacerle una consulta, aunque no está directamente relacionada con el tema del vídeo.
      Llevo dándome cuenta, desde que empecé hace unos días a ver los vídeos, que cuando utilizo la clase Scanner para crear un objeto, pese a que posteriormente hago uso de él como es en este caso para obtener la respuesta del usuario por consola, en la línea de declaración del objeto entrada (o como se le llame) me marca un error. ¿A que se debe y cómo solucionarlo?
      disculpe que le ponga esta cuestión por aquí, pero es la primera vez que comento uno de sus vídeos.
      Mil gracias de nuevo por todo su trabajo. siga así.
      Un saludo.

  • @Adgale
    @Adgale 4 роки тому +3

    Hasta ahora esto ha sido lo mas complejo de entender, pero se ha comprendido a base de repetir el vídeo 500 veces. Saludos y Gracias.

  • @NelsonTuesta
    @NelsonTuesta 6 років тому +197

    - Hijo, qué es eso de enum, que drogas estás tomando?
    - Se llaman pildoras
    - qué pildoras?
    - informáticas
    - me tomas el pelo?
    - Eso te lo diré en la próxima entrega. Hasta entonces, que te vaya bien XD XD

  •  7 років тому +2

    La verdad que este es el primer vídeo que me ha costado un poco, pero tocando un poco el código y retrocediendo el vídeo un poco, lo entendí. No aguanto a llegar al final del curso y empezar con Android. Muchas gracias por el tiempo y el esfuerzo que dedicás para hacer este tipo de vídeos. Saludos desde Argentina.

  • @javig.verdeja3674
    @javig.verdeja3674 7 років тому +91

    Este ha sido el tema mas complejo hasta ahora!!

    • @disenoelectronicayprograma2224
      @disenoelectronicayprograma2224 5 років тому +3

      Con razón se me ha complicado, pero bueno, como todos los temas, toca tenerles paciencia para llegar a entenderlos

    • @istikis
      @istikis 5 років тому +5

      El primer video que me deja medio K.O....también es verdad que llevo viendo uno tras otro desde primera hora de la mañana y son las 19:00....mañana lo veo otra vez mas fresco, saludos!

  • @nataliapamplona1401
    @nataliapamplona1401 8 років тому +16

    Muchas gracias por todo el tiempo y dedicación que pones en estos cursos. Además de darle al "me gusta" pensaba qué más podría hacer para devolverte una parte de lo que me das y me alegró ver el botón "Donate" en tu web.
    Muchas gracias de nuevo

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому +1

      +Natalia pamplona Pues muchísimas gracias por el comentario y por seguir mis vídeos. Me alegro de que te guste mi trabajo. Un cordial saludo

  • @Miguepor
    @Miguepor 8 років тому +2

    Increible lo bien que explicas y lo claro que queda todo con los ejercicios contraejemplos etc. Mil gracias de verdad

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +Miguel Ferreira Gracias por el comentario. Me alegro de que te guste. Un saludo

  • @azsonidoiluminacion
    @azsonidoiluminacion 7 років тому +1

    Muchas gracias por tu trabajo, es magnifica la forma en la que explica cada tema. Creo que este curso vale oro y es mucho mejor que varios cursos presenciales que cuestan mucho dinero, y usted aquí nos lo ha dejado totalmente gratis. Lento pero seguro voy avanzando y espero luego seguir con su curso de programación en Android. Saludos desde Argentina.

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому

      Muchisimas gracias por el comentario. Me alegro de que te guste el curso y espero que sigas avanzando lento pero firme. Un saludo!!

  • @alexchile2653
    @alexchile2653 6 років тому +4

    Buenos videos. Este video es el primero que voy a tener que verlo 2 veces.

  • @accesojaps
    @accesojaps 4 роки тому +27

    Por si le sirve a alguien, las clases MINI, MEDIANO, GRANDE Y MUY GRANDE deben estar en mayúsculas al definirlas al inicio en la Clase ENUM, si las escriben en minúsculas les dará error

    • @gerardoruizmendezc7242
      @gerardoruizmendezc7242 4 роки тому +2

      o tambien puedes cambiar el "toUpperCae()" por "toLowerCase()" si es en minusculas (si vas a usar mayusculas o minusculas simplemente quitarlo)

    • @ArmanGO-Oficial
      @ArmanGO-Oficial 3 роки тому

      @@gerardoruizmendezc7242 CORRECTO!

    • @Alzuk3n
      @Alzuk3n 3 роки тому

      Muchas Gracias en mi caso puse "ExtraGrande" tal cual y opte por quitarlo no entendía por que je...

    • @CristianMartinezcrismarpe
      @CristianMartinezcrismarpe Рік тому

      me habeis salvado muchas gracias

    • @claudiangeline1
      @claudiangeline1 8 місяців тому

      Me salvastes con ese comentario, no sabia en que me equivoqué, gracias

  • @carlosguevara257
    @carlosguevara257 4 роки тому

    Estoy empezando este video, sin embargo hasta ahora todos los anteriores han sido excelentemente bien explicados, eres brillante Juan, muchas gracias !!!!

  • @franm1152
    @franm1152 5 років тому

    Por el momento es el video que mas tiempo me ha llevado dominar ya que nunca lo habia visto antes, pero es muy interesante!!

  • @lluispeiro
    @lluispeiro 8 років тому +4

    Bueno, he llegado al vídeo 48, y fin del bloque POO.
    Excelentes vídeos y excelente profesor, de esta manera es un placer aprender Java.

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +Lluís Peiró Muchas gracias por el comentario. Me alegro de que te gusten los vídeos. Un saludo!!

  • @arielizurieta9110
    @arielizurieta9110 4 роки тому +1

    Tema complejo, pero con un ejemplo claro se entiende perfectamente. Muchas gracias !

  • @marceloalejandroasis2596
    @marceloalejandroasis2596 Рік тому

    Como siempre profe su pedagogía impecable, saludos desde Argentina.

  • @SinNombre101
    @SinNombre101 8 років тому +2

    Fabulosa explicación del tipo Enum.
    Gracias por su tiempo y dedicación.

    • @SinNombre101
      @SinNombre101 8 років тому +1

      +Sinno mbre Qué lástima que no se puedan dar más de 1 like..

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +Sinno mbre Gracias a ti por seguir mis vídeos. Saludos!!

  • @alisedresy
    @alisedresy Рік тому

    ¡Buenísimo vídeo, Juan! Yo ya sé Java, pero tenía duda de cómo funcionaba este tipo de objeto y lo has explicado súper bien. ¡Muchas gracias!

  • @cappy367
    @cappy367 6 років тому +10

    Uff se me hizo un balurdo barbaro =( , sobre todo la segunda parte jeje, pero no me desanimo, seguire adelante... ya volvere a ver la luz. Gracias Profe.

  • @juanpamontoyav
    @juanpamontoyav 9 років тому +1

    Repetir repetir.... y Si ya lo he entendido mejor, estos días los he repetido desde el 45 al 60 y poco a poco me quedan más conceptos. :)
    Grandes tutoriales!!!!

    • @pildorasinformaticas
      @pildorasinformaticas  9 років тому

      +juanpamontoyav Gracias por el comentario y enhorabuena por tu perseverancia. Un cordial saludo

  • @D-Jobe
    @D-Jobe Місяць тому

    Para mí, personalmente, la clave para entender el segundo ejemplo fue que, hasta este punto del curso, estábamos acostumbrados a que el constructor sirva para instanciar objetos.
    Sin embargo, en los enum no se pueden instanciar objetos nuevos, sino que todos los que existen ya están instanciados en la lista que vemos.
    Entonces, ¿para qué crear un constructor con un parámetro? Bueno, porque es una excusa para asociar los objetos, en este caso de tipo Talla, a un atributo o característica propia que más tarde nos pueda venir bien obtener con un getter.
    Con esto ya se me hizo la luz y pude comprender el vídeo. Lo comparto por si a alguien más le ayuda. Al final enum Talla es parecido a decir class Talla, sólo que no podemos instanciar objetos Talla, sino que todos están ya instanciados.
    Cuando decimos MINI("S"), o MEDIANA("M"), es como decir que esos objetos se han instanciado con ese parámetro. Si tú pudieras usar ese constructor y metieras el parámetro S, te crearía el objeto MINI.

  • @oriaj2000
    @oriaj2000 2 роки тому

    clase 48 y tamos ready. mejor entendido imposible

  • @autilius
    @autilius 6 років тому

    Hola muy buen vídeo, gracias por poner los cursos en línea de fácil acceso, no te había escrito, pero creo que es el momento oportuno, tu trabajo es genial, hace tiempo, ya muchos ayeres vi Java en la universidad, y por cuestiones que retome un proyecto regrese a programar, al principio del curso me dormía, no te lo voy a negar, pero llegado a este punto, me emocione, por fin llegamos al pantano y nos empezamos a sumergir en el lodo y fango denso que es Java, y me da gusto que sea de la mano de un profesional como tu, terminando este curso me gustaría que me dieras asesorías personalizadas; pero para eso aun falta. Gracias

  • @carlosrosario289
    @carlosrosario289 7 років тому

    Excelentes Vídeos , he aprendido muchísimo y no he llegado ni a la mitad del curso

  • @maotoledos
    @maotoledos 7 років тому +6

    Este es el vídeo que me ha costado mas de los 48 que llevo. Algún día llegare a Java EE, algún día!

  • @disenoelectronicayprograma2224
    @disenoelectronicayprograma2224 5 років тому

    Explican muy bien. Gracias, solo me he visto parte del vídeo 4:08 y ya se me han aclarado algunas dudas. Gracias nuevamente. EL tema de los Sockets también me sirvió mucho.

  • @mauriciotorresvblog
    @mauriciotorresvblog 7 років тому +1

    Muy interesante, sigo con el curso aprendiendo cada vez mas y mas.

  • @stefannyprichinenko1456
    @stefannyprichinenko1456 5 років тому +2

    Complejo este tema, hasta ahora es el único video en el que he tenido que volver a verlo para entender

    • @AugusteLovecraft
      @AugusteLovecraft 5 років тому +1

      Yo ni aún así. Espero entenderlo todo mejor más adelante.

    • @adriancordova1618
      @adriancordova1618 3 роки тому

      A mí me resultó más difícil el anterior, de los modificadores de acceso.

  • @jmansanetperez
    @jmansanetperez 6 років тому +1

    Como siempre, muchas gracias Juan.

  • @eliasrj15
    @eliasrj15 7 років тому +14

    Profesor, en este vídeo si me a costado captar y de hecho aun tengo lagunas. Me puse en mi - cotidiana y rutinaria - tarea de leer los comentarios. Y allí a uno de los compañeros (alumnos) le pidió paciencia para entender las Enumeraciones y que todo quedaría claro en la Programación Genérica. Por curiosidad busque la Programación Genérica en la Lista de Reproducción y es el N° 161 y aún vamos en el 48... Se ve tan lejano. Así de difícil es a estas alturas entender bien lo de las Enumeraciones? Gracias por su respuesta. Y pese a todo aquí sigo.

  • @alsud2224
    @alsud2224 4 роки тому +1

    Creo que con esto ya voy bien para mi práctica de Programación. Son las 4 de la mañana pero voy a tope jeje (me quedan unas horas para entregar)
    Por cierto, muchísimas gracias por el curso

  • @danielpineda5200
    @danielpineda5200 2 роки тому

    Hola cómo estás Juan?. Por ser la primera vez que escribo un comentario. Antes que otra cosa quiero decir muchas gracias por tu tiempo el contenido que compartes esta excelente.😇👌
    En cuanto a este tema: tipos numerados; me surgió una inquietud e intenté hacer una mejora y la finalidad era ser capaz de aceptar cualquier de los datos (talla o abreviación) entrada de datos y que nos mostrará el resultado correspondiente en ambos formas.
    La principal idea es hacerlo lo más simplificado posible tratando de agregar el menos código posible a lo ya existente.
    Saludos, 🤝 desdé México.

  • @osvaldocire2279
    @osvaldocire2279 7 років тому

    Es un tema algo complicado de entender a primera pero bien explicado. Muchas gracias.

  • @santiagod3712
    @santiagod3712 6 років тому

    Hola Profesor. Antes que nada agradecerte x este curso q me tiene atrapado como nunca nada me atrapo antes. En este video, hay algunas cosas que me confunden un poco. En primer lugar, no termino de entender si Talla es una variable objeto (como indicas en el minuto 04:15), o si es una clase (según entendí en el minuto 06:05) que hereda de Enum. Tampoco me queda claro por que en el minuto 06:05 al usar los métodos y los valores estáticos, y al tener que anteponer a ellos la clase, la clase usada es Talla, mientras que en el minuto 17:34 la clase es Enum. Entiendo que en el minuto 17.34 el método que se quiere usar es estático y pertenece a la clase Enum, pero en el minuto 06:05 cuando ponemos "Talla s=Talla." eclipse no sugiere algunos métodos que pertenecen a la clase u objeto Talla, pero q no vi declarados en ningún lado, como por ejemplo "valueOf(String arg0):Talla. Por ultimo, en el minuto 17:35, declaras una variable "la_talla" q luego, en el minuto 19:54, se comporta como objeto al aplicarle el método Getter dameAbreviatura(); En este caso, tienen las variables de tipo Talla un comportamiento de objeto? Son dudas que no vi planteadas por ningún subscriptor, lo cual me hace sospechar q algo se me escapo durante el curso. Agradezco la respuesta. Saludos!

  • @juliobarrera1014
    @juliobarrera1014 4 роки тому

    Enum de hecho es una herramienta bastante útil, yo lo utilice para un analizador léxico que nos pidieron en la universidad.

  • @francantony7877
    @francantony7877 4 роки тому +1

    Despues de ver el video por 2da vez y detenidamente lo entendi todo, que dificil pero se pudo

  • @erikportayaloy
    @erikportayaloy 8 років тому +2

    Me tomo gran parte del dia entenderlo, pero rrepasando mis apuntes, y volviendo a repetir el video , logre entenderlo Gracias

  • @oscarbavi7886
    @oscarbavi7886 10 років тому +7

    Buenas tardes!
    Vaya, entonces imagino que posiblemente te llego mis Peticiones de PARTE 3 jeje lo que no me esperaba es que respondieses a las peticiones, bueno ya sabes mi postura respecto a la parte 3 propuesta. Gracias de antemano
    Respecto al tema de los tipos Enumerados:
    No se porque pero me cuesta entender algunas metodologías que has aplicado en este video
    Veamos si puedes aclararme toda esta batería de dudas
    Paso a las dudas que no son pocas:
    1) Según comentas, los tipos Enum, sirven para almacenar valores que a su vez no se pueden modificar; interpreto que esto no es como un array de tipo String en el cual contenga los valores MINI; MEDIANO,....etc y que se podrian modificar verdad?
    2) Cuando haces:
    Enum Talla{MINI, MEDIANO, GRANDE, MUY_GRANDE}
    Todos los valores en mayúsculas que representan? Son Objetos, son el nombre de constantes y por ende constantes, son variables,...? no lo acabo de ver claro por eso hago la pregunta 3 y porque asocio los tipos Enum como si fuesen arrays y creo que no son lo mismo no?
    3) Si realizáramos:
    final String[] Talla = {“MINI”, “MEDIANO”, “GRANDE”, “MUY_GRANDE”}
    por declarar tallas como un array de String de constantes estos tampoco se pueden modificar, luego no seria el funcionamiento idéntico a los enum? O no seria lo mismo?
    4) Si cuando realizas
    Enum Talla{MINI, MEDIANO, GRANDE, MUY_GRANDE} los nombres en mayúsculas representan que son constantes y según el video al realizar: Talla s = Talla.MINI; si posteriormente realizáramos un System.out.println(s); este nos devolvería la constante (valor) MINI verdad?
    5) En la siguiente parte del video (que es donde casi me das la estocada)
    public class Uso_Tallas {
    enum Talla {
    private String abreviatura;
    MINI(“S”), MEDIANO(“M”), GRANDE(“L”), MUY_GRANDE(“XL”)
    private Talla(String abreviatura) {
    this.abreviatura = abreviatura;
    }
    }
    }
    Vuelvo a lo que me esta matando, los valores en mayúsculas que son? Variables, objetos..? si te das cuenta es la misma pregunta qué la 2 y es lo que no me queda claro
    6) Según tu el constructor del tipo enum
    private Talla(String abreviatura) {
    this.abreviatura = abreviatura;
    }
    recibe un parámetro de tipo String llamado abreviatura que según comentas recibirán los valores S, M, L, y XL; es decir, seria como lo siguiente:
    private Talla(“S”) o seria private Talla(MINI(“S”))?
    para finalizar lo que tampoco acabo de pillar es cuando dices que por una parte asociamos el nombre del objeto por ejemplo: MINI(“S”) y la abreviatura del objeto? Con quien haces la asociación y en donde?
    La asociación se hace en: this.abreviatura = abreviatura;
    this.abreviatura representa el nombre del objeto que en este caso seria MINI y al lado de la asignación seria la “s”; es decir seria: MINI = S;
    7) Según la instrucción Talla la_talla = Enum.valueOf(Talla.class, entrada_datos); y tu explicación esto nos devolverá el nombre de la Constante enumerada; es decir, si el usuario introduce grande esto nos devolverá GRANDE
    Vuelvo a la pregunta de antes los nombres en mayusculas del tipo MINI o MINI(“S”)...etc
    que representan, porque parecen que sean CONSTANTES, VARIABLES, o OBJETOS?
    Menuda empanada que ahora tengo
    PD: Agarraos los machos todos los que sigamos el curso que empiezan las curvas :)

  • @FilosofoD
    @FilosofoD 7 років тому +7

    Algo complicado, aunque efectivamente repitiendo el video puede llegar a entenderse...saludos

  • @argentina1387
    @argentina1387 4 роки тому +1

    Gracias. Me ayudaste un montón !!

  • @kingjj6969
    @kingjj6969 3 роки тому

    Definitivamente la clase que mas se me ha complicado, sigo sin entender :(
    No entiendo por qué devuelve la abreviatura.
    Actualización: Ya entendí !!! ¡Gracias Juan, por este curso! :)
    En definitiva es como escribir Talla..dameAbreviatura() Solo que el tipo se lo pasamos por la consola gracias al método de la clase «Scanner»
    tipos:
    Lo veré una vez más para quedar satisfecho!

  • @alephalpha1429
    @alephalpha1429 7 років тому +1

    gracias tu curso es muy bueno

  • @jeque5910
    @jeque5910 Рік тому

    Como te explico, que soy muy feliz, porque intenté 34 veces, y me salió en la 35 jajajajaja, intenté crear una clase aparte, y le doy uso en la clase "uso_talle". Resulta que no me salia, porque habia puesto "MIN" en lugar de "MINI", y cada vez que ingresaba mini, me daba error :)

  • @raulvega7694
    @raulvega7694 7 років тому

    Muchas Gracias Juan! saludos

  • @antoniozs6616
    @antoniozs6616 10 років тому +20

    Conceptos algo complejos los de este video. No se explicó tan bien como cuando nos trató de explicar graficamente que un hijo hereda de su padre y este a su vez del abuelo..jajaja. En cualquier caso, enhorabuena por el trabajo que hace, es brillante!

    • @pildorasinformaticas
      @pildorasinformaticas  10 років тому +1

      Antonio Zaballos Sánchez Gracias por el comentario. Un saludo

  • @marcossenero9974
    @marcossenero9974 8 місяців тому

    Una pequeña recomendación para quien quiera es que en el minuto 18:40, en vez de usar el valueOf de esa manera que a lo mejor resulta un poco lioso podemos hacer lo siguiente :
    Talla la_talla=Talla.valueOf(entrada_datos);
    De esta manera lo que estamos haciendo es decirle a nuestro programa directamente que estamos usando la clase Talla sin tener que especificarlo después pasando dos parámetros al método valueOf, no es gran cosa pero alomejor os ayuda a no liaros de porque llama Enum.valueOf() y verlo de manera más sencilla.

  • @fabioescobar5463
    @fabioescobar5463 10 місяців тому

    Excelente, gracias!

  • @MayKeRu
    @MayKeRu 8 років тому +1

    Wooow, esto fue difícil de entender jeje y al leer los comentarios me sentí mejor jajaja porque no fui el único que le costo entenderlo, tuve que devolver el vídeo muchas veces, me acoste a dormir y lo vi al otro dia otra ves jajajajaja, logre aclarar mejor mis dudas cuando quise utilizar la clase JOptionPane solo para practicar un poco ya que me gusta mas que la clase Scanner para obtener el dato de entrada, entonces me daba error y era porque tenia que convertir el string a mayúsculas entonces quise convertirlo aplicando directamente toUpperCase(); directamente a la variable "entrada.toUpperCase();" entonces me seguía dando error, en eso me di cuenta que tenia que crear otra variable donde almacenar la cadena convertida a mayúsculas entonces fue que comprendí por que la necesidad de hacer esto: talla la_talla=Enum.valueOf(talla.class, entrada);
    no se si me di a entender espero que si jeje, Saludos desde Venezuela...
    Un millón de gracias por este curso !!

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      Me alegro de que al final saliera. Peleando con el código es como más se aprende. Un saludo!!

  • @ameliaroza6987
    @ameliaroza6987 2 роки тому

    Excelente video

  • @JuanJoseCamussi
    @JuanJoseCamussi 8 років тому +1

    Hola profesor!
    Que curiosa esta clase "enum", por un lado debes instanciar un objeto Talla del tipo enum, y por otro declarar una variable "s" del tipo Talla.
    He leido por ahi que implicitamente lo que uno hace es crear una nueva clase llamada Talla. Esto me ha quedado claro.
    Tambien es curiosa la estructura que tiene esta clase, tan diferente a las demas.
    Lo que no me quedo claro es que tan necesario es el uso del metodo Enum.valueof ? si lo que guardo en el objeto "la_talla" es lo mismo que ingresé en "entrada_datos" (min 19:39)
    Saludos!!

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому +2

      +Juan Jose Camussi Hola !! Sí, tienes razón. A estas alturas del curso plantear el uso de este tipo de clases puede ser un poco desconcertante... Todo se aclarará (eso espero) cuando llegues en el curso a la parte de programación genérica.
      El método valueOf devuelve la constante del tipo enum correspondiente. La explicación sería farragosa hacerla por escrito así que te planteo que si después de ver la programación genérica sigues teniendo la duda, me la vuelvas a plantear.
      Un saludo

  • @martiserra1271
    @martiserra1271 9 років тому +3

    Hola, podrias poner ejercicios, seria un puntazo para el canal.

    • @pildorasinformaticas
      @pildorasinformaticas  9 років тому +4

      +Martí Serra Estoy en ello. De momento solo dos para los que empiezan, pero iré subiendo más. En mi web los tenéis www.pildorasinformaticas.com (sección ejercicios) Un saludo

    • @martiserra1271
      @martiserra1271 9 років тому +2

      +pildorasinformaticas Gracias! No sabia que tenias una pagina web. Sin duda este es el mejor canal de programacion :)

  • @AugusteLovecraft
    @AugusteLovecraft 5 років тому +2

    Este es el video más complejo que he estudiado hasta ahora. Hay un momento en que te pierdes en la explicación, pero creo que es porque no asimilamos con total claridad lo que es un tipo enumerado.. y aún asimilandolo solo entiendo con claridad el ejemplo básico... Donde lo que estamos haciendo es crear un tipo propio de datos.. Algo que nosotros creamos desde 0.. y ese tipo ni es un String, ni un int, ni nada que exista. Es nuestro tipo de datos enum. Pero los ejemplos más elaborados aún me cuesta asimilarlos.

  • @antonioj358
    @antonioj358 8 років тому +2

    Hola a todos, para los que reclaman ejercicios. Y con el permiso de nuestro profesor.
    www3.ntu.edu.sg/home/ehchua/programming/java/J2a_BasicsExercises.html
    www3.ntu.edu.sg/home/ehchua/programming/java/J3f_OOPExercises.html
    www3.ntu.edu.sg/home/ehchua/programming/java/GraphicsExercises.html
    Están en inglés, pero con la ayuda de google translator, no creo que haya problema. En todo caso creo que están bastante claros.
    En los ejercicios tenemos "el esqueleto" y se trata de completarlos nosotros. Saludos.

  • @teldatamcy5656
    @teldatamcy5656 9 місяців тому

    Gracias!!!

  • @calexito9448
    @calexito9448 7 років тому +3

    :v mejor me marco este vídeo en favoritos y cuando necesite hacer tipos enumerados recurriré a él... es muy difícil de entender D:

  • @ramirobenjamincarpio7788
    @ramirobenjamincarpio7788 6 років тому

    Hola profe, mi conslta era con respecto a la declaracion de la clase Talla , esta se crea del siguiente modo:
    enum Talla{
    }
    ahora, cuando llama al metodo valueOf lo hace de la siguiente manera:
    Talla latalla = Enum.valueOf(Talla.class, entrada_datos);
    la pregnta seria: ¿por que para declarar esta "clase" Talla usa enum con la e en minuscula y para llamar al metodo usa Enum con E en mayusculas?
    ESTA DUDA YA FUE RESPONDIDA, MUCHAS GRACIAS!
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
    AHORA, COMO SERIA PARA STRING???
    ya que en c/c++ se usa en minusculas, cual seria la direrencia acá?
    desde ya, muchas gracias profesor, excelentes clases.

  • @joselosddrd
    @joselosddrd 7 років тому +4

    Una pregunta un poquito personal, he buscado y me han divariado mucho, entonces queria preguntarte.
    Realmente tienes que saber matemaicas como precalculo, calculo diferencial e integral para ser un buen programador? O mas bien aplicar como resuelves problemas maticamente en la programacion, que seria mas de logica. Gracias

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому +9

      Cuantas más matemáticas sepas a la hora de programar, mucho mejor. Pero no es necesario tener conocimientos de derivadas, integrales etc. Es más bien lo segundo que comentas tú, es decir, tener una "mente matemática" para resolver problemas. Lo que ocurre es que quien suele tener este tipo de entrenamiento son los que han estudiado más matemáticas. Un saludo!!

    • @joselosddrd
      @joselosddrd 7 років тому +1

      Gracias eres un IDOLO.

  • @juanpamontoyav
    @juanpamontoyav 9 років тому +1

    Buenas.
    No conocía esas capacidades de crear method construct dentro de los ENUM, ahora me surgió una duda en el minuto 18:00 donde pasas 2 parámetros al método Enum.valueOf(Talla.class , entrada_datos);
    He entendido que le pasas "La CLASS a la que pertenece , nombre_de_var_delScanner " pero no entiendo el porque de usar la sintaxis: " Talla class, ". ¿Porqué se usa el class después del nombre de la Clase.?
    Este enum es bastante más complejo que en otros lenguajes jeje, que ventajas tiene usar los construct dentro del ENUM a usarlos como siempre lo hemos realizado en los vídeos.
    Gracias a todos los que puedan aportar. Saludos Juan.

    • @reiniergarcia
      @reiniergarcia 9 років тому +1

      Hola juanpamontoyav:
      En lugar de:
      Talla LaTalla = Enum.valueOf(Talla.class, EntradaDatos);
      Podemos usar:
      Talla LaTalla = Talla.valueOf(EntradaDatos);
      Funciona igual que el anterior, con la diferencia de que se escribe menos:

    • @juanpamontoyav
      @juanpamontoyav 9 років тому

      Gracias

    • @hectorpyco
      @hectorpyco 6 років тому

      inclusive no hace falta instanciar, simplemente llamar Talla.valueOf(EntradaDatos); en el syso, de alguna manera el método valueof llama al constructor.

  • @arnaldotorrl
    @arnaldotorrl 7 років тому

    Saludos, profesor:
    Excelente vídeo, todo fue muy claro para mi cuando empecé a ver a las variables del enum como objetos y no como un String.
    Siempre busco entenderlo todo, sin dejar pasar nada y tengo la siguiente duda:
    En el método estático valueOf: Enum.valueOf(Talla.class , entrada_datos);
    Entiendo que el primer parámetro hace referencia a la clase que pertenece, pero ¿por qué se usa el ".class"? ¿Qué pasaría si se coloca únicamente "Talla"? ¿Qué otro uso tiene este ".class"?
    Gracias de antemano, profesor.
    Saludos.

    • @hectorpyco
      @hectorpyco 6 років тому

      si lo escribes así se vuelve más fácil de comprender: Talla.valueof(entrada_datos); no hace falta volver a instanciar Talla la_talla pues el método valueof ya llama al constructor.

  • @eduardotrujillo9316
    @eduardotrujillo9316 4 роки тому

    Lo cierto es que esto de los enum sería de valor interesante para hacer pseudo IA, al fin y al cabo solo te interesa unos valores concretos ante los que actuar. Luego ya vendría de desarrollar otra parte que traduzca casi infinitos valores a esos pocos.. Todo esto dicho sin tener ni idea de IA, por supuesto!

  • @diegobkbenitez7316
    @diegobkbenitez7316 8 років тому +1

    excelentes videos gracias solo una pregunta en el curso ¿¿¿¿¿se vera recursividad????

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому +1

      +Diegobk Benitez Hola !! Me han preguntado varias veces por el tema de la recursividad. Lo trataré en el curso. No se dónde lo voy a meter pero lo veré. Un saludo

    • @diegobkbenitez7316
      @diegobkbenitez7316 8 років тому +1

      muchas gracias igualmente saludos que este muy bien

  • @druizcayuela
    @druizcayuela 9 років тому +6

    Basicamente, valueOf es para poder comparar lo que dice el usuario con nuestro enum, no?

    • @pildorasinformaticas
      @pildorasinformaticas  9 років тому +2

      Daniel Ruiz Cayuela Sí, así es. Almacena el tipo enumerado de tipo Talla introducido por el usuario por consola. Un saludo

  • @JulianCGomez-pt1od
    @JulianCGomez-pt1od 5 років тому +5

    He sobrevivido hasta aqui.

  • @marvinsequera
    @marvinsequera 7 років тому +8

    Primer video que me hace sufrir asi que no queda otra sino mentalizarse, "I shall conquer you".

  • @TheChicucu
    @TheChicucu 4 роки тому

    si no lo mal entendí, según yo esto de los tipos enumerados es como la validación de datos en excel en e que estableces que en las celdas solo se puedan escribir ciertos valores, solo que aquí seria dentro de una variable no?

  • @estivenmartinez576
    @estivenmartinez576 5 років тому +1

    Hola JUAN, te hago una pregunta en concreto ¿Los tipos enumerados, pueden albergar números? o solamente caracteres de tipo String?

    • @pildorasinformaticas
      @pildorasinformaticas  5 років тому +1

      Strings. Pero puedes meter números entre comillas. Un saludo!

  • @ASURAPRIEST19
    @ASURAPRIEST19 8 років тому +2

    yo puse primero sin querer System.out.println(" la abreviatura es "+LaTalla.Abreviatura);
    y funciono,pero supongo es porque el metodo main esta en la misma clase, de haber creado otra clase y desde ahi poner esa linea,supongo si me habria dado error de modificador de acceso y tendria que usar LaTalla.getAbreviatura();

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому +1

      +ASURAPRIEST19 Hola !! No recuero de qué hice en este vídeo, pero efectivamente si estuvieras en otra clase y la variable Abreviatura estuviera encapsulada, necesitarías un método de acceso (getter). Un saludo

    • @fernandocarlos9477
      @fernandocarlos9477 7 років тому +1

      Lo mismo me pasó, menos mal el complemento de las clases magistrales del profesor( los vídeos) está en los comentarios!!! jaja.

  • @saulmendiola3591
    @saulmendiola3591 Рік тому

    Profe , hará algún curso de Hibernate?

  • @PabloQ90
    @PabloQ90 6 років тому

    Hola Que tal, antes que nada gracias por este curso que lo vengo siguiendo y me encanta la forma en que lo das.
    Una duda, como debería hacer si quiero buscar por abreviatura en el enum en lugar de por la palabra mini, mediano, etc de lo que ingresa el usuario??
    Muchas gracias!

  • @davaguco
    @davaguco 7 років тому +5

    Este es el primer vídeo que he tenido que ver 2 veces, debo estar un poco espeso. Con mi edad, 43, me está costando aprender a programar.

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому +8

      El que te habla en los vídeos es de tu quinta. Hay mucha gente joven por aquí a la que le cuesta programar. Aprender un lenguaje de programación desde 0 como Java, es algo que requiere mucho esfuerzo a cualquier edad. Tener que ver un vídeo varias veces, o tener que leer un concepto de programación en un libro varias veces, es algo muy normal. Igual que buscar varias horas un error de sintaxis en el código.
      Luego los hay afortunados que con leer y ver una vez es suficiente. Pero estos no son normales. El resto si lo somos. Un saludo!!

    • @davaguco
      @davaguco 7 років тому +4

      pildorasinformaticas Gracias por los ánimos, a veces me atasco pero conseguiré terminar y programar. Luego voy a hacer el de Android, seguramente.

    • @fernandocarlos9477
      @fernandocarlos9477 7 років тому +1

      ánimo!

    • @paulaperez2675
      @paulaperez2675 6 років тому +1

      yo tengo 42 y es esfuerzo VAMOS QUE SE PUEDE!!!!

    • @walterjosesuarezdelacruz1495
      @walterjosesuarezdelacruz1495 6 років тому

      Asu q el primer vídeo, ps para mí es el vídeo 40 masomenos q tengo q verlo por segunda vez jaja

  • @florat3742
    @florat3742 10 років тому +3

    Buenas tardes profe :)
    una pequena duda que tengo: la clase enum que utiliza para instanciar Talla es la misma que clase Enum que ocupa para llamar al metodo valueOf().. ?? Por que entonces se escriben diferente ?
    Me ha ayudado muchisimo con sus videos!! Muchas gracias.

    • @pildorasinformaticas
      @pildorasinformaticas  10 років тому

      Florencia T Hola !! Dime por favor minuto y segundo donde aparece tu duda y te digo algo. Un saludo

    • @florat3742
      @florat3742 10 років тому

      pildorasinformaticas Min. 4:11 (enum) y Min. 17:45 (Enum)

    • @pildorasinformaticas
      @pildorasinformaticas  10 років тому +4

      Ok visto !! Sí, esto es lo de los tipos enumerados. Bueno, pues estamos de nuevo ante una clase "especial" de Java y la verdad es que no hay explicación por la cuál haya que especificar el tipo en minúsculas (enum). Si entramos en la API, la clase Enum comienza en mayúsculas y sin embargo el tipo se especifica en minúsculas.
      En la documentación oficial de Java simplemente dicen que lo pongas en minúsculas, así que debe ser por convención. Aquí el enlace de la web de oracle donde lo explican: docs.oracle.com/javase/tutorial/java/javaOO/enum.html
      En definitiva es una regla de sintaxis más que no obedece a explicación y que se debe aprender. Quizá lo hicieron para diferenciar de alguna forma los tipos enumerados del resto de tipos "normales" de Java.
      Un saludo

    • @florat3742
      @florat3742 10 років тому

      Gracias por la respuesta! Me queda mas claro. Saludos :)

  • @sergiodominguezvela1691
    @sergiodominguezvela1691 5 місяців тому

    Hola, gracias por el contenido. Tengo una duda, en las opciones de talla, la talla muy grande lleva un guion bajo, a la hora de que el usuario introduzca ese valor por consola si no utiliza el guion bajo da un error. Igual que IgnoreCase se utiliza para las mayusculas, Que puedo utilizar para que el guion bajo no sea un problema. Gracias de nuevo.

  • @didierescobarb2224
    @didierescobarb2224 4 роки тому

    Hola, Puedo conseguir la abreiatura sin hacer un metodo geter, es decir con la primera forma que usted enseñó? Todos los valores entre llaves?

  • @carloszaragoza4431
    @carloszaragoza4431 2 роки тому

    Sin el método getter funcionaría también, ya que en el main hemos instanciado la_talla, digamos, un objeto que es de tipo enum, con lo cual nos deja acceder a los campos de clase, en este caso a abreviatura. Syso("Abreviatura= " + la_talla.abreviatura).

    • @juanpicca
      @juanpicca 2 роки тому

      Claro, pero es un error de POO llamar a una variable sin el getter, ya que no estamos utilizando encapsulamiento

  • @mirianorellana8974
    @mirianorellana8974 7 років тому +1

    me encanta este curso, tal vez en donde puedo encontrar el curso de POO completo para descargar y revisarlo completamente?

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому

      Me alegro de que te guste. En mi página web www.pildorasinformaticas.es estará disponible para descargarlo pronto. Un saludo!!

    • @mirianorellana8974
      @mirianorellana8974 7 років тому

      gracias! espero noticia de cuando ya este disponible, es super util.
      :)

  • @crc_12z28
    @crc_12z28 Рік тому

    Hola profe, como intento siempre desarmar y armar, tratando de ser un tanto a mi manera a la vez me demuestro que he captado su explicacion, pues ...mi propia version..cambiando las posiciones, las Letras, los out.prntln, en fin ..para variar
    !!!! muchisimas gracias por su dedicacion, gracias
    // version asumida...saludos
    import java.util.Scanner;
    public class use_Size {
    // enum size {
    // small, medium, large, X_large
    // };
    enum Size {
    // SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRAL("XL");
    S("Small"), M("Medium"), L("Large"), XL("Extra Large");
    String abreviature;
    public String show_abreviature() {// getter
    return abreviature;
    }
    // private Size(String abreviature12) {
    Size(String abreviature1) {
    this.abreviature = abreviature1;
    }
    }
    public static void main(String[] args) {
    System.out.println("Please enter a Size: S, M, L, XL");
    Scanner enter = new Scanner(System.in);
    String enter_data = enter.next().toUpperCase();
    Size the_size = Enum.valueOf(Size.class, enter_data);
    // pricipal objetivo del video : Valores enumerados Ej.. S("Small")...
    // de la clase enum Size{
    System.out.println("Size: " + the_size + " ,
    definition: " + the_size.show_abreviature());
    // System.out.println("abreviatura = " + the_size.show_abreviature());
    enter.close(); // quizas hace 8 años no era necesario, pero cada vez que se usa scanner se exige :
    // ___.close();
    }
    }
    PD. donde he commentado // la linea es para dejar claro que ambas opciones son validas..🔛

  • @christianguaman9126
    @christianguaman9126 8 років тому

    Una pregunta dentro de la clase Enum se pueden utilizar otro tipo de datos o solo String, me refiero a la enumeracion. Saludos.

  • @diegoapestegui6489
    @diegoapestegui6489 2 роки тому

    Hola. Que aplicación utilizas para mostrar las flechas y subrayados mientras vas hablando y explicando ?. Muy didácticas las clases. Saludos.

    • @DKBZA
      @DKBZA Рік тому

      pointofix

  • @franciscotello5558
    @franciscotello5558 9 років тому +1

    Buen día, una pregunta por que razon Eclipse me marca error al insertar esta linea: enum Talla {MINI, MEDIANO}; será por la version del Eclipse o algo por el estilo?. Gracias de antemano por la respuesta y felicidades por este gran curso.

    • @pildorasinformaticas
      @pildorasinformaticas  9 років тому

      Francisco Tello Hola !! No lo se. Copia y pega aquí todo el código de tu programa y quizás te pueda ayudar. Un saludo

    • @reiniergarcia
      @reiniergarcia 9 років тому

      Hola Francisco:
      No es por la versión de Eclipse. Es que, según lo que posteaste, has tecleado:
      enum Talla {MINI, MEDIANO};
      Y en cambio debes poner:
      enum Talla {MINI, MEDIANO}
      O sea, quita el punto y coma al final.

  • @erikvaldez1076
    @erikvaldez1076 9 років тому +1

    saludos, me surgió una pregunta hace alguno videos atras, me gustaria saber como se hace para almacenar los datos introducidos en en programa, que incluso despues de cerrarlo yo pueda recuperar esos datos (o mas bien informacion) y poder segir manipulándola, desde ya muchas gracias, excelente curso

    • @pildorasinformaticas
      @pildorasinformaticas  9 років тому +2

      Erik Leonel Valdez Hola !! Pues eso lo veremos cuando tratemos el tema de JDBC La solución estaría en almacenarlo en una BBDD o fichero externo. Un saludo

  • @scrypt992
    @scrypt992 8 років тому +1

    Buenas Juan, tengo una duda simple. Justo en el minuto 3:53, cuando borras el texto, te aparece la barra/cursor de escribir en negro, y luego supongo que presionas alguna tecla para que se te ponga otra vez normal, en el minuto 3:57.
    Este cursor/barra de escribir en negro es muy molesta ya que al escribir, si quieres escribir delante de un texto, se sobreescribe este texto.
    Supongo que será una pregunta tonta, a veces me ha pasado y debo cerrar la clase y volver a abrirla para quitarlo, con que atajo de teclado se quita?
    No se si me he esplicado, pero muchas gracias de antemano, y gracias por los videos claro:)

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому

      +Scrypt 99 Esto es porque pulsaste sin querer la tecla "Insert" de tu teclado como me pasó a mi en el vídeo. Con volverla a pulsar es suficiente.
      Un saludo

  • @InoelFernandez
    @InoelFernandez 7 років тому

    ¿Estos tipos enumerados son análogos en cierta medida a los diccionarios de Python? Saludos y gracias.

  • @teldatamcy5656
    @teldatamcy5656 9 місяців тому

    Disculpa Juan, Esta afirmación se puede decir que está correcta?
    ROJO es un objeto de la clase Enum Color. ROJO es un objeto que se almacena una parte de la memoria ram, en la pila de memoria, se puede hacer uso de los valores almacenados en la memoria a través de una dirección de memoria por ejemplo en el espacio 0x08BA, a su vez este objeto puede tener x cantidad de atributos\fields almacenados en ese espacio de memoria.
    // ROJO es un objeto que se inicializa con el constructor TelaColor donde se le pasa los atributos color, codigo y tipo, el operador this lo que hace es referencia al espacio de memoria donde está almacenado el objeto ROJO (o el objeto que corresponda) de tipo enum, ejemplo this -> 0x08BA para ROJO, en ese lugar de la memoria a su vez se ubica los atributos color, codigo, tipo)
    public enum TelaColor{
    ROJO ("Rojo Ferrari", 7, "Importado"),
    //invoca al constructor y le pasa los argumentos para ser almacenados en la RAM
    AZUL("Azul Claro", 2, "Nacional");
    private final String color, tipo;
    private final int codigo;
    TelaColor (String color, int codigo, String tipo){
    this.color=color;
    this.codigo=codigo;
    this.tipo=tipo;
    }
    }
    Data Memory (RAM) Address
    "Rojo" 0x08BA ROJO. color this.color 0x08BA.color
    El operador this señala la direccion de memoria donde se
    almacena el atributo\field
    7 0x08BA ROJO. codigo this.codigo 0x08BA.codigo
    this = 0x08BA
    "Importado" 0x08BA ROJO.tipo this.tipo 0x08BA.tipo
    "Azul Claro" 0x08C0 AZUL. color this.color 0x08C0.color
    2 0x08C0 AZUL. codigo this.codigo 0x08C0.codigo
    this = 0x08C0
    "Nacional" 0x08C0 AZUL.tipo this.tipo 0x08C0.tipo

  • @pepeaznarsanchez5320
    @pepeaznarsanchez5320 4 роки тому

    Si tu creas atributo en otra clase de ese enumerado, qué valor toma por defecto ? Gran video crack, un saludo

  • @joselosddrd
    @joselosddrd 7 років тому +1

    Saludos de nuevo, una pregunta, La programacion orientada a objetos, es la misma en todos los lenguajes, static, this, etc es lo mismo en php en c# en js? O tiene algunas diferencias

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому +2

      El concepto sí, la sintaxis es lo que cambia. Una variable static es lo mismo en todos los lenguajes orientados a objetos. Lo mismo con la instrucción this etc. Cambia la forma de utilizarlas (sintaxis). Un saludo!!

  • @luisivanburgaacuna8159
    @luisivanburgaacuna8159 4 роки тому

    gracias por todo, una pregunta porque al inicio se declara enum con minuscula, y en el otro caso esta Enum-->en este esta entendido que es una clase pero porque el otro en minuscula si lo pones igual da error

  • @lauraloreiro947
    @lauraloreiro947 7 років тому

    Hola, primero, muchas gracias por los conocimientos que brindas! segundo, la consulta, cuando abro eclipse aparece este mensaje que no me deja continuar "An error has ocurred. See the log file C:\....JAVA\.metadata\.log." me podrías ayudar a solucionarlo? o indicarme dónde debo buscar? Muchas Gracias!

  • @Dr.jaimeoliverpino
    @Dr.jaimeoliverpino 4 роки тому

    Se puede implementar clase enum y herencia en un programa?

  • @papicocinaok
    @papicocinaok 4 роки тому

    Hola! qué aplicación usas para hacer las marcas y las flechas en el video?

  • @So-tz7gn
    @So-tz7gn 5 років тому +1

    Muchísimas gracias por el tutorial. Tengo una duda puntual: ¿Por qué la clase enum empieza con minúscula?, no se supone que el nombre de todas las clases en Java deben empezar en mayúscula.

    • @pildorasinformaticas
      @pildorasinformaticas  5 років тому

      Gracias por el comentario. Los enum no son clases. de hecho nunca los verás con la palabra class delante: class enum.... Esto no existe. Los enum son tipos, unos tipos que puedes crear tú mismo pero no clases. por este motivo no empiezan por mayúsculas. Un saludo!

  • @imanolmayo6825
    @imanolmayo6825 4 роки тому

    Las constantes enumeradas se podrian considerar como instancias predefinidas a las que solo el usuario puede acceder pero no modificar ?

  • @joseespin84
    @joseespin84 9 років тому +2

    Buenos días profe, me surge la siguiente duda, siendo enum una clase, por qué el nombre de esta empieza por una letra minúscula, en todo caso debería llamarse Enum, tal como se muestra en la documentación de las API de Java.

    • @pildorasinformaticas
      @pildorasinformaticas  9 років тому +4

      Elvis Espinoza Todo se debe a que la clase Enum es diferente a las demás clases de la API y por eso no sigue las mismas regñas que las demás. Se trata de una clase especial que limita las instancias que se pueden crear de la clase a las específicadas en la implementación de la clase. Además, a diferencia del resto de las clases, en el caso de llevar constructor este debe ser privado para no poder crear más instancias que las especificadas en la implementación de la clase.
      Un saludo

  • @ernestito111
    @ernestito111 8 років тому

    Un saludo :)
    Osea que es obligatorio declarar enum dentro de la misma clase antes del main?, así como los constructores?,......si yo creo una clase principal y una subclase podria crear el enum en la principal pero los constructores en una subclase?, o no se puede?, lo digo para no pelear con el código en vano :)

  • @tiagooliveira4868
    @tiagooliveira4868 8 років тому

    Saludos profesor!
    Quisiera saber en que momento el contructor hace su trabajo, es decir en que linea de códido del método main hace que
    el constructor haga la asignación de la abreviatura?
    ¿Seria en esta linea de código?
    Talla la_talla = Enum.valueOf(Talla.class, entrada_datos);

  • @VictorRamirez-vn7ku
    @VictorRamirez-vn7ku 3 роки тому

    Chabón una consulta, salís del curso haciendo algo medianamente copado, útil?

  • @joselosddrd
    @joselosddrd 7 років тому +2

    Cuando vas a hablar del garbage collector?

    • @pildorasinformaticas
      @pildorasinformaticas  7 років тому +2

      Nunca. En Java al contrario de otros lenguajes no se manipula. Es automático. Un saludo!!

  • @bastianparra9820
    @bastianparra9820 7 років тому +1

    Buenos días profesor, me ha surgido una duda en el minuto 19:55, y es que no entiendo por qué aún cuando la variable abreviatura declarada dentro del enum se salta la encapsulación aún cuando la declaro como private , me explico, Eclipse no da error al escribir la_talla.abreviatura , lo cual está incorrecto..
    Desde ya muchas gracias, su curso me ha servido mucho. Un cordial saludo.

    • @flordemariamarquezchavez198
      @flordemariamarquezchavez198 7 років тому +2

      Bastian, lo que pasa es que sigues estando en la misma clase, es decir enum Talla esta dentro de la clase Uso_talla, entonces como se esta llamando en la misma clase, el uso de PRIVATE es aprobado, a menos que enum estuviera en otro archivo ahí si no se podría... saludos.

    • @bastianparra9820
      @bastianparra9820 7 років тому +1

      Flor de Maria Marquez Chavez Muchas gracias por responder, me has despejado la duda :) Saludos y que tengas una buena semana!

    • @flordemariamarquezchavez198
      @flordemariamarquezchavez198 7 років тому +1

      De nada, igualmente... buen inicio de semana Bastian.

  • @allos4888
    @allos4888 8 років тому +1

    pildorasinformaticas: Me compre el libro "aprendiendo java 2 en 21 dias", es bueno?( no pude conseguir sus recomendados)Muchas gracias!!!

    • @pildorasinformaticas
      @pildorasinformaticas  8 років тому +2

      +aquiles losada Pues la verdad no lo se. No lo he leído nunca. Pero ya te anticipo que el título es mentira a no ser que seas un privilegiado mental. Ya nos contarás qué tal el libro. Un saludo!!

    • @estivenmartinez576
      @estivenmartinez576 5 років тому

      ¿Como te fue con el libro? :v

  • @jlsogorb
    @jlsogorb 3 роки тому

    Si en lugar de usar la entrada en línea de comandos, usamos cuadro de diálogo quedaría así, en una sola línea:
    String entrada_datos =(JOptionPane.showInputDialog("Escribe una talla: MINI, MEDIANO, GRANDE, MUY_GRANDE")).toUpperCase();
    Por supuesto habiendo importado antes:
    import javax.swing.*;