Cursos e Qualificações

O que é set em Java? Entenda a função

Entenda o que é set em Java, como funciona um setter, qual é a diferença para get e por que esse padrão ajuda no encapsulamento.



Em resumo:

  • Set é a convenção usada para métodos que atribuem ou alteram valores de atributos, geralmente privados.
  • Get e set formam um par: get devolve o valor, set grava o valor, e as responsabilidades não devem se misturar.
  • Usar métodos set em vez de expor o atributo diretamente permite validar o valor antes de gravá-lo, reforçando o encapsulamento.

Quem começa a programar em Java frequentemente encontra métodos chamados `setNome`, `setIdade` ou `setPreco` dentro de uma classe e quer saber o que esse prefixo realmente significa.

De forma geral, “set” é a convenção de nomeação usada para métodos que definem ou alteram o valor de um atributo de uma classe, especialmente quando esse atributo é privado e não pode ser acessado diretamente de fora da classe.

Esses métodos costumam aparecer ao lado de outro grupo, os métodos “get”, responsável por devolver o valor atual do atributo.

Mecanismo geométrico de estúdio em metal e acrílico com esfera direcionada a um compartimento, simbolizando a atribuição controlada de dados em programação.

Como um método set funciona na prática?

Na prática, um método set costumo seguir uma assinatura simples: recebe um parâmetro do mesmo tipo do atributo e atribui esse valor ao atributo da classe, normalmente usando a palavra `this` para deixar explícito que se trata do atributo do próprio objeto, como em `public void setNome(String nome) { this.nome = nome; }`.

Teste vocacional

Qual carreira combina com o seu perfil?

Responda as perguntas e descubra o curso certo e as bolsas ideais para você!

Um exemplo mínimo ajuda a visualizar o papel do set dentro de uma classe:

  • A classe declara um atributo privado, por exemplo `private String nome;`.
  • O método set recebe um valor externo e grava esse valor no atributo, como em `setNome(“Ana”)`.
  • O método get devolve o valor atual do atributo, como em `getNome()`, sem alterar nada.

Esse padrão se repete para qualquer atributo que precise ser lido ou alterado de fora da classe, seja um texto, um número ou outro tipo de dado.

Diferenças entre set e get

AspectoMétodo getMétodo set
FunçãoConsultar o valor atual do atributoDefinir ou alterar o valor do atributo
Retorno típicoDevolve o valor do atributoGeralmente não devolve nada (void)
Efeito no estadoNão altera o objetoAltera o estado interno do objeto
Exemplo de nomegetIdade()setIdade(int idade)

Essa divisão de papéis evita ambiguidade: quando alguém lê `getSaldo()`, entende que está apenas consultando um valor; quando lê `setSaldo(valor)`, entende que o estado do objeto vai mudar.

Vale lembrar que os prefixos get e set não são impostos pela sintaxe da linguagem Java; são uma convenção de nomeação amplamente seguida pela comunidade e por ferramentas que leem essa estrutura, mas a linguagem em si aceitaria outros nomes para os mesmos métodos.

Por que usar set em vez de expor o atributo

Estrutura geométrica translúcida protegendo um núcleo cilíndrico polido, ilustrando a barreira de encapsulamento e validação de atributos.

Uma dúvida comum é por que não declarar o atributo como público e evitar métodos extras.

A diferença está no controle: um atributo declarado como `private` só pode ser lido ou alterado através dos métodos da própria classe, como get e set; já um atributo `public` fica exposto e pode ser alterado por qualquer parte do programa, sem nenhuma verificação.

Por passar pelo método set, a atribuição de um valor pode ser validada antes de ser gravada; por exemplo, um setter para idade pode rejeitar um valor negativo lançando uma exceção, em vez de simplesmente aceitar qualquer número.

Esse controle é o que costuma ser chamado de encapsulamento: o atributo fica protegido, e a classe decide quais valores são aceitáveis antes de gravá-los.

Quando criar métodos set no código

Nem todo atributo de uma classe precisa, obrigatoriamente, de um método set. A criação desse método costuma responder a uma necessidade real: algum outro trecho do programa precisa alterar aquele valor de fora da classe, e essa alteração deve passar por algum controle antes de acontecer.

Quando um atributo só é definido uma vez, por exemplo no construtor, e nunca muda depois, pode não haver motivo para um método set correspondente. Gerar setters automaticamente para todos os atributos, sem avaliar essa necessidade, tende a expor a classe além do que ela realmente precisa.

Cuidado: set também é uma interface do Java

Além do método setter, existe uma interface chamada `Set` no pacote de coleções do Java, e os dois usos não têm relação direta entre si.

A interface `Set`, do Java Collections Framework, representa uma coleção de elementos sem repetição, sem garantir uma ordem específica para os itens armazenados.

Isso contrasta com a interface `List`, que mantém a ordem de inserção dos elementos e permite acessar cada item por um índice numérico, recurso que o `Set` não oferece.

Outra diferença prática é o comportamento diante de duplicatas: se o código tentar adicionar a um `Set` um elemento que já existe na coleção, essa adição é simplesmente ignorada, e a coleção continua com apenas uma ocorrência do valor.

Por isso, ao ler “set” em código ou em documentação Java, é importante observar o contexto: se aparece como prefixo de método dentro de uma classe, trata-se do setter; se aparece como tipo de variável ou de coleção, trata-se da interface de coleções.

Perguntas frequentes sobre set em Java

Qual é a diferença entre set e get em Java?

Get é o método que devolve o valor atual de um atributo, sem alterar nada; set é o método que recebe um valor e grava esse valor no atributo, alterando o estado do objeto.

Por que não deixar o atributo como public em vez de usar set?

Porque um atributo public pode ser alterado por qualquer parte do programa sem nenhuma verificação, enquanto um método set permite validar o valor antes de gravá-lo, evitando estados inválidos no objeto.

Todo atributo de uma classe precisa ter um método set?

Não necessariamente. A criação de um método set deve responder a uma necessidade real de alterar aquele valor de fora da classe; atributos definidos apenas no construtor e que nunca mudam podem não precisar de um setter.

O método set tem algum tipo de retorno?

Normalmente não. A assinatura típica de um setter usa o tipo `void`, já que sua função é gravar um valor no atributo, e não devolver nenhum resultado ao código que o chamou.

O que é a interface Set em Java?

É uma interface do Java Collections Framework usada para representar coleções de elementos sem repetição, sem garantir uma ordem fixa para os itens armazenados.

O que acontece se eu tentar adicionar um elemento repetido em um Set?

A adição é ignorada. Como a interface Set não permite elementos duplicados, tentar inserir um valor que já está presente na coleção simplesmente não altera o conteúdo dela.

Construa sua carreira em tecnologia com formações alinhadas ao mercado

Se você quer ingressar ou crescer no mercado da tecnologia, a Allevo Tech oferece formações práticas em áreas de alta demanda, como Engenharia de Software, Ciência de Dados e Inteligência Artificial.

As trilhas são estruturadas para desenvolver competências técnicas e preparar você para os desafios do mercado de trabalho.

Clique no botão abaixo e conheça as formações da Allevo Tech que podem impulsionar a sua trajetória profissional.

Logo do Querobolsa

Gostando da matéria?

Inscreva-se e receba nossos principais posts no seu e-mail

Banner FOQA Últimas Notícias

Revista Vídeos

As profissões mais bem pagas em 2026

Postado em 31/03/2026

Como estudar pro ENEM 2026 do ZERO

Postado em 23/04/2026


Pronto para estudar pagando menos?

Bolsas de até 80% de desconto em milhares de faculdades por todo o Brasil.
Encontrar minha bolsa