Curso Java. Tipos enumerados. Vídeo 48

Поделиться
HTML-код
  • Опубликовано: 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 года назад +8

    ✅✅ ✅ ✅ ✅ 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 года назад +57

    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í

  • @NelsonTuesta
    @NelsonTuesta 6 лет назад +194

    - 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

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

    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.

  • @javig.verdeja3674
    @javig.verdeja3674 7 лет назад +91

    Este ha sido el tema mas complejo hasta ahora!!

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

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

    • @istikis
      @istikis 4 года назад +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!

  • @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 6 месяцев назад

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

  • @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

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

  • @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.

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

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

  • @FallingESP
    @FallingESP 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.

  • @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

  • @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.

  • @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 3 года назад +1

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

  • @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!

  • @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!!

  • @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!!

  • @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!!

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

    clase 48 y tamos ready. mejor entendido imposible

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

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

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

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

  • @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!

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

    Algo complicado, aunque efectivamente repitiendo el video puede llegar a entenderse...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!

  • @alsud2224
    @alsud2224 3 года назад +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

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

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

  • @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

  • @oscarbavi7886
    @oscarbavi7886 10 лет назад +6

    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 :)

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

    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.

  • @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

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

    Como siempre, muchas gracias Juan.

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

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

  • @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.

  • @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.

  • @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 :)

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

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

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

    Hola. No me riñan mucho si la pregunta es muy básica, pero … porque declaramos Talla de tipo enum ('e' minúscula) y en el main al declarar la variable la_talla y usar Enum la 'E' es con mayúscula?
    Si recuerdan en que numero de curso se explicaba esto yo lo repaso.
    Un saludo.

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

    Gracias. Me ayudaste un montón !!

  • @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!

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

    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.

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

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

  • @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.

  • @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.

  • @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

  • @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

  • @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:

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

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

  • @fabioescobar5463
    @fabioescobar5463 8 месяцев назад

    Excelente, gracias!

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

    Muchas Gracias Juan! saludos

  • @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

  • @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!

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

    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?

  • @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.

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

    Excelente video

  • @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 8 лет назад +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 8 лет назад

      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.

  • @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 Год назад

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

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

    Cual es la diferencia entre declararlo como "public class" y "public enum" ?

  • @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!!

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

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

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

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

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

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

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +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 8 лет назад +2

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

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

    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

  • @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.

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

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

  • @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.

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

    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

  • @sergiodominguezvela1691
    @sergiodominguezvela1691 3 месяца назад

    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.

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

    Hola que tal! me paso algo curioso y no encuentro la solución, normalmente creo las variables al principio de la clase, sin embargo en esta ocacion me marca un error al declarar la variable String abreviatura al inicio de objeto enum talla, para quitar el error decidi cambiar la variable al final del obejto justo como usted puso en el ejemplo y solo asi el error desaparecio.
    aqui la forma en que me marca error:
    enum talla{
    private String abreviatura; //si declaro la variable aqui marca error
    MINI ("s"), MEDIANO("M"), GRANDE("G"),XTRA ("XL");

    private talla (String abreviatura){//constructor talla
    this.abreviatura = abreviatura;
    }// fin constructor talla
    }//fin objeto enum talla

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

      beto morales Hola !! En el vídeo la variable abreviatura está declarada fuera del tipo enumerado mientras que tú la estás declarando dentro del tipo enumerado. Observa las llaves Si pruebas a declararla arriba pero fuera del tipo enumerado verás que funciona.
      Dentro de un tipo enumerado no podemos declarar variables. Un saludo !!

    • @davidm.p.6488
      @davidm.p.6488 9 лет назад +1

      beto morales Os cuento lo q he comprobado yo. Me paso exactamente igual y me quede también un poco loco jaja pero ya me di cuenta lo que era. No se trata de ponerla arriba o abajo. Tanto en el video como en mi propio ejemplo la variable la declaro dentro de 'Enum Talla' y la solución vino cuando añadí los valores PEQUEÑO("S"), MEDIANO ("M"), etc ...En el momento que acabe esa linea, todos los errores desaparecieron. Es como si obligara una vez q creas la clase a dar ya unos valores. Espero haber ayudado. Un saludo!

  • @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.*;

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

    Es como un diccionario como en python?

  • @JulianCGomez-pt1od
    @JulianCGomez-pt1od 5 лет назад +5

    He sobrevivido hasta aqui.

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

    Tengo una duda talla muy_grande lleva guion bajo para invocarla pero como se puede invocar escribiéndola normal sin el guion bajo se puede?

  •  6 лет назад

    Al momento en que la_talla toma el valor de tipo Talla, llama al constructor y ahi le pasa el String el cual almacena en this.abreviatura el valor abreviado. Y por eso después podemos usar el getter dame_abreviatura. Esto es así o lo estoy razonando mal?

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

    Es como un hash map?

  • @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

  • @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.

  • @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?

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

    Veo mucha gente diciendo que es un tema muy dificil, yo lo veo muy lógico, es una buena señal supongo! (es mi primera vez que veo el concepto), por cierto... que bónita es la programación orientada a objetos.. que bónito es java :,)

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

      :)) me alegro de que le veas la parte bella y te guste. Un saludo!!

  • @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?

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

    mi duda esta por que cuando pones los objetos MINI("s") , MEDIANO ("m") .... los parametros que tienen se pasan al metodo private Talla
    y luego mi otra duda por que el metodo statico valueOf se le tiene q poner 2 parametros: ( que hace Talla.class ¿? , entrada_datos)
    espero su respuesta gracias de antemano.

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

    Ehh... la dificultad aumento alguna vez y no me di cuenta...? Me confunde mucho este tema.

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

      Hay temas más complejos que otros. Además el curso va aumentando la complejidad a medida que avanza. Y el que te habla tampoco está igual de fino todos los días a la hora de explicar. Un saludo!!

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

      Hay temas más complejos que otros. Además el curso va aumentando la complejidad a medida que avanza. Y el que te habla tampoco está igual de fino todos los días a la hora de explicar. Un saludo!!

  • @Dr.jaimeoliverpino
    @Dr.jaimeoliverpino 4 года назад

    Se puede implementar clase enum y herencia en un programa?

  • @arnaldotorrealba2289
    @arnaldotorrealba2289 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.

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

    si pongo System.out.println("la abreviatura es: "+la_talla.abreviatura); es lo mismo si pongo System.out.println("la abreviatura es: "+la_talla.dameAbreviatura()); . Esto deberia ser asi?

  • @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

  • @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

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

    Buenas tengo un par de dudas.
    1) ¿Eclipse luna o neo? hace poco reinstale windows y cuando lo hice, instale de nuevo eclipse, pero eclipse luna;¿ son lo mismo? para mi si, pero capaz tienen alguna diferencia que yo no soy capa de ver.
    2) Los que llevan tiempo programando,¿ tienen algun especie de cuaderno de notas donde anotar cosas sobre las clases,constructores etc?, supongo que esto es un poco a eleccion pero mi pregunta seria ¿conviene tener algo asi o con la api de java alcanza? esto de tomar notas, ¿podria ayudar a ser un mejor programador o a entender algunos conceptos mucho mejor?
    Saludos.

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

    que es talla? talla es un objeto o una clase?..

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

      Juan dice en el video que es una variable objeto.

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

      Es un tipo de datos nuestro propio. Somos sus creadores y decidimos que alberga. Una pasada vamos.

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

    pero si lo declararamos con el modificador final y asi hacerlo constante en lugar de usar elementos enum

  • @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.

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

    Profesor me puede ayudar con este ejercicio: Construir un sistema O.O que represente a un sistema de seguridad en el cual se pueda ingresar nombre de usuario y contraseña, debe existir un método para validar si la contraseña ingresada es correcta y un método para cambiar la contraseña actual por otra nueva, el sistema deja cambiar la contraseña siempre y cuando esta no haya sido usada recientemente, dado que el sistema almacena las últimas cuatro usadas.
    Quisiera saber si pudo guardar las contraseñas y usuario en una matriz, de poder hacerlo asi, como hago paraque se borren automaticamente.
    Gracias

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

    En Scanner entrada=new Scanner(System.in); porque tiene un aviso de error diciendo que entrada no a sido cerrada?

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

      Si quieres puedes cerrarla escribiendo en el codigo:
      entrada.close();
      Pero debes tener cuidado, si cierras el Scanner entrada ya no sera reutilizable en otras lineas posteriores de codigo y tendras que declarar otro objeto de tipo Scanner si quieres seguir ingresando datos mediante la consola
      Para demostrarte un ejemplo de a lo que me refiero:
      1) Define un nuevo scanner:
      Scanner entrada = new Scanner(System.in);
      2) Almacena el contenido que vendra del scanner en una variable String, como siempre:
      String datos = entrada.next();
      3) Imprime los datos que ingresaste:
      System.out.println(datos);
      4) Cierra el Scanner entrada:
      entrada.close();
      Hasta ahi todo bien y como veras, el aviso al que te refieres, desaparece, pero, si quieres volver a utilizar el objeto "entrada" mas tarde para almacenar mas datos, te va a dar error, por lo que si escribes otra variable para almacenar los datos usando el mismo Scanner "entrada" que acabas de cerrar como por ejemplo:
      String datos2 = entrada.next();
      Te tirara error, porque el Scanner que pertenece a "entrada" ya esta cerrado como viste en el paso 4, y de ahi tienes dos alternativas:
      1) Si quieres usar el mismo Scanner para toda tu aplicacion, escribe lo que necesites y cuando creas que ya no necesitas el Scanner, recien en ese momento puedes cerrarlo con ".close()", ej, entrada.close();
      2) Crea un nuevo objeto Scanner con diferente nombre:
      Scanner entrada2 = new Scanner(System.in);
      Seguro te preguntas si porque hay que cerrar el Scanner que creaste... Es mas por un tema de rendimiento en general, y seguridad, en los siguientes cursos quizas lo explican mas a fondo.

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

      Porque no has importado el paquete java.util

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

      @@PANCHO7532 gracias

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

    pregunta este video esta actualizado, he visto gente que crea los enumerados directamente en una clase nueva, y no como una instancia de enum, y bueno me ha surgido la duda de cual es la forma correcta, y como he visto que estabas actualizando, a lo mejor no has llegado actualizar hasta este video o no lo sé? pues eso si me puedes aclarar por favor si ya estan todos los videos actualizados o aun falta por actualizar?

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

    Hola tengo una duda.
    El constructor se podría haber creado fuera del enum? o cuál es la razón de crearlo adentro?

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

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

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

    19:51 también me funciona poniendo Sytem.out.println(laTalla.abreviatura); osea poniendo la variable directamente, esto porque es?

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

      Porque estás dentro de la misma clase donde has declarado la variable y además creo recordar que el modificador de acceso de la misma era public o por defecto. Hablamos de todo esto en el curso (encapsulación), quizás más adelante. Un saludo!

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

      Es porque estamos haciendo todo en el ejemplo desde la clase principal. Si no no te dejaría.

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

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