Ir ao conteúdo

Posts recomendados

Postado

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?

Postado

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
Postado

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.

Postado

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.

Postado

@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

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...