DEV Community

Construtores, métodos, variáveis de instância e enumerações

  • Cada constante de enumeração é um objeto do tipo da enumeração.

  • Uma enumeração pode ter:

  • Construtores: Chamados ao criar cada constante.

  • Métodos: Podem ser chamados pelas constantes.

  • Variáveis de instância: Cada constante possui sua própria cópia.

  • Esses recursos permitem associar informações específicas a cada constante, como uma velocidade típica no exemplo mencionado.

// Usa um construtor, uma variável de instância e um método com a enumeração.
enum Transport {
CAR(65), TRUCK(55), AIRPLANE(600), TRAIN(70), BOAT(22); //Observe os valores de inicialização.
//Adiciona uma variável de instância
private int speed; // velocidade típica de cada meio de transporte
// Construtor
Transport(int s) { speed = s; }
int getSpeed() { return speed; }
}
class EnumDemo3 {
Adiciona um método.
public static void main(String args[])
{
Transport tp;
// Exibe a velocidade de um avião.
System.out.println("Typical speed for an airplane is " +
Transport.AIRPLANE.getSpeed() +
" miles per hour.\n");
//Obtém a velocidade chamando getSpeed( ).
// Exibe todos os meios de transporte e velocidades.
System.out.println("All Transport speeds: ");
for(Transport t : Transport.values())
System.out.println(t + " typical speed is " +
t.getSpeed() +
" miles per hour.");
}
}

  • A enumeração Transport adiciona:

  • Variável de instância speed: Armazena a velocidade de cada meio de transporte.

  • Construtor: Recebe e atribui o valor de velocidade.

  • Método getSpeed(): Retorna o valor de speed.

  • Constantes da enumeração incluem os argumentos do construtor em parênteses e terminam com ponto e vírgula (;) se houver outros membros na enum.

CAR(65), TRUCK(55), AIRPLANE(600), TRAIN(70), BOAT(22);

  • Cada constante tem sua própria cópia de speed, permitindo valores diferentes e independentes entre as constantes.

Transport.AIRPLANE.getSpeed(); // Retorna 600.

  • A velocidade de cada transporte pode ser acessada em um laço for.

  • Java permite sobrecarga de construtores em enumerações, como em qualquer outra classe.

Top comments (0)