No entendí <code> public enum Day{ SUNDAY("Domingo"), MONDAY("Lunes"), TUESDAY("Martes"); private Str...

Yorman stiven meneses

Yorman stiven meneses

Pregunta
student
hace 7 años

No entendí

public enum Day{ SUNDAY("Domingo"), MONDAY("Lunes"), TUESDAY("Martes"); private String spanish; private Day(String s){ spanish = s; } public String getSpanish(){ return spanish; } }

por que cuando imprimo

System.out.println(Day.MONDAY.getSpanish());

me trae el nombre en español ?
en que momento estoy pasando le algo al constructor de Day ?

5 respuestas
    Jhosmar Parra Montaño

    Jhosmar Parra Montaño

    student
    hace 7 años

    en el constructor privado day, le asigna el valor a la variable spanish.

    Juan José Cano Duque

    Juan José Cano Duque

    student
    hace 7 años

    Tampoco entiendo el ejemplo de ann.
    Creo yo que el ejemplo se entendería mejor así:

    Day d = Day.MONDAY; System.out.println( d.getSpanish() );

    De esa manera al hacer

    Day d = Day.MONDAY;

    Estás llamando al constructor de la clase que hace que
    spanish
    tome el valor interno de
    MONDAY
    y luego llamando el método
    getSpanish()
    imprimes ese valor. Pero todo esto funciona gracias a que estamos almacenando a
    DAY
    en una variable externa
    d
    .

    César Espitia

    César Espitia

    student
    hace 7 años

    Gracias andresfelipemarulandacortes por el link, es una explicación corta, concisa y sencilla.

    Daniel Camacho

    Daniel Camacho

    student
    hace 3 años

    Si, lo que pasa es que asi como en las clases, los enum poseen un constructor automaticamente, a pesar de que no es visible, otra observacion el constructor no utilizo el

    this
    ya que lo inicializo con distinto nombre, para mejor lectura comparto la syntax que normalmente utilizamos los constructores.

    public enum Days { SUNDAY("Domingo"), MONDAY("Lunes"), TUESDAY("Martes"), WEDNESDAY("Miercoles"), THURSDAY("Jueves"), FRIDAY("Viernes"), SATURDAY("Sabado"); private final String spanish; private Days(String spanish) { this.spanish = spanish; } public String getSpanish() { return spanish; } }
Curso Avanzado de Java SE

Curso Avanzado de Java SE

Explora programación avanzada en Java SE centrándote en la programación orientada a objetos, lambdas, y manejo de excepciones. Aprende a usar JDBC para acceder a bases de datos, aplicando técnicas modernas y eficientes para gestión de datos.

Curso Avanzado de Java SE
Curso Avanzado de Java SE

Curso Avanzado de Java SE

Explora programación avanzada en Java SE centrándote en la programación orientada a objetos, lambdas, y manejo de excepciones. Aprende a usar JDBC para acceder a bases de datos, aplicando técnicas modernas y eficientes para gestión de datos.