Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Interface X Classe X Enum X Record: quando usar?

É provável que esta dúvida já tenha sido respondida aqui. Estou iniciando meu aprendizado em Java e alguém poderia, por favor, me explicar o que é e para que serve Enum, Interface, Classe e Record em Java?

Agradeço desde já a ajuda.

2 respostas
solução!

Oii, tudo bem?

Essa é uma dúvida muito comum para quem está começando, Gabriel.

No Java, cada uma dessas estruturas possui um propósito específico para organizar o código. Como você tá lidando com um projeto antigo, entender essas diferenças vai ajudar você a identificar por que certas partes do sistema foram escritas de determinada forma.

Classe (class)

A classe é a unidade básica da Programação Orientada a Objetos. Ela serve como um molde para criar objetos.

  • Para que serve: Representar entidades do mundo real ou conceitos do sistema que possuem estado (atributos) e comportamento (métodos).
  • Quando usar: Quando você precisa criar objetos que guardam dados e executam ações, como uma classe Usuario ou ProcessadorDePagamento.

Interface (interface)

A interface funciona como um contrato. Ela define o que uma classe deve fazer, mas não como ela faz.

  • Para que serve: Estabelecer um padrão que diferentes classes podem seguir. Isso permite que você troque uma implementação por outra sem quebrar o restante do sistema.
  • Quando usar: Quando você tem diferentes formas de realizar uma tarefa. Por exemplo, uma interface Autenticador pode ser implementada por AutenticacaoViaSenha ou AutenticacaoViaDigital.

Enum (enum)

O Enum (abreviação de enumeration) é um tipo especial usado para definir um conjunto fixo de constantes.

  • Para que serve: Garantir que uma variável só receba valores específicos e conhecidos, evitando erros de digitação ou valores inválidos.
  • Quando usar: Para representar opções fixas como dias da semana, status de um pedido (PENDENTE, PAGO, CANCELADO) ou níveis de acesso.

Record (record)

Introduzido em versões mais recentes do Java (Java 14+), o Record é uma forma simplificada de criar classes que servem apenas para carregar dados.

  • Para que serve: Eliminar o código repetitivo (boilerplate) como getters, toString, equals e hashCode. O Record é imutável por padrão, o que significa que seus dados não mudam após a criação.
  • Quando usar: Quando você precisa de uma classe apenas para transportar dados entre diferentes partes do sistema (os chamados DTOs), sem lógica complexa associada.

Resumo comparativo:

EstruturaObjetivo PrincipalExemplo de Uso
ClasseDefinir objetos com estado e comportamento.Funcionario, ContaBancaria
InterfaceDefinir um contrato de comportamento.Calculavel, ArmazenamentoDados
EnumDefinir uma lista de valores fixos.MesDoAno, PrioridadeTarefa
RecordTransportar dados de forma imutável.EnderecoDTO, DadosLogin

Espero ter ajudado.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Oi, Lorena.
Muito obrigado pela ajuda.
Compreendi melhor as diferenças aqui respondidas, sua ajuda foi essencial.
Desculpa a demora em responder.
Abraços!