Ir ao conteúdo
  • Cadastre-se

Java Atributos obrigatorios precisam estar em um construtor?


Posts recomendados

Estou desenvolvendo uma atividade e nela diz que alguns dos atributos de uma classe precisam ser obrigatórios, então eis a dúvida,

atributos obrigatorios somente serão obrigatorios se estiverem no construtor?

Será necessário eu criar um construtor para a classe para torná-los obrigatório?

Link para o comentário
Compartilhar em outros sites

Se um atributo é obrigatório, então para criar um objeto dessa classe será necessário fornecer essa informação. Dessa forma o construtor precisa receber esses dados.

 

Algo assim:

Spoiler

public class Pessoa {
  private String nome;
  private String cpf;
  
  public Pessoa(String nome) {
    this.nome = nome;
  }
}

 

 

Nesse exemplo, para criar o objeto do tipo Pessoa, você terá que fornecer um nome.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Entendi, eu tenho outra dúvida, a respeito da mesma atividade em que estou a desenvolver, para mim tornar um atributo imutável eu devo usar o modificador "final" na declaração de varíavel, certo?

Exemplo:

private String nome;
private String dataNascimento;
private final String rg;

A ideia é torná-lo impossível de editar após fornecer o seu valor, desse modo eu não utilizaria um método setRg() pra inserir o RG e sim forneceria no momento de leitura ao ir cadastrar um aluno (que é a classe a ser trabalhada), é apenas uma dúvida a ser confirmada para não ter erros, pois é dessa forma que estou fazendo, obrigado.

Link para o comentário
Compartilhar em outros sites

Elementos com modificador final, não podem ter mais que uma atribuição. Para garantir isso, o Java te obriga a inicializar esse elemento na declaração, ou via construtor. Depois disso o valor passa a ser constante.

 

Tome cuidado com objetos, apesar da referência ser constante, os atributos desse objeto não são, a não ser que sejam declarados com final também.

Link para o comentário
Compartilhar em outros sites

@RobertoGB Correto, se um atributo é obrigatório, você não pode fornecer meios que levem esse atributo a não ser inicializado.

 

Se esse atributo não for final, você pode ter um construtor sem parâmetros, desde que dentro dele você inicialize o atributo obrigatório com algum valor padrão, pois como não é final, o mesmo pode receber outro valor posteriormente.

 

Por outro lado, se o atributo for final, então é necessário que não haja um construtor sem parâmetros.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!