Considere a seguinte definição de classe:
public class Produto {
private String nome;
private double preco;
public Produto(String nome, double preco) {
this.nome = nome;
this.preco = preco;
}
public String getNome() {
return nome;
}
public double getPreco() {
return preco;
}
}
O que acontece se você tentar acessar o atributo nome diretamente em um objeto dessa classe fora da classe Produto?
d) Nenhuma das opçōes acima.

Passo 1

Beleza, vamos resumir o que o enunciado pede e o que vamos usar.
Você tem uma classe Java chamada Produto que declara dois atributos:
private String nome;
private double preco;
O construtor e os getters estão lá, mas o ponto é: esses atributos são private.
Matéria: encapsulamento em Java e modificadores de acesso (public, private, protected).
O que precisamos saber:
  • O que significa um atributo ser private.
  • O que acontece quando tentamos usar esse atributo fora da própria classe.

Passo 2

O modificador private em Java faz com que aquele membro (atributo ou método) só seja acessível de dentro da mesma classe onde ele é declarado.
Se você tiver, por exemplo:
Produto p = new Produto("Caneta", 2.50);
System.out.println(p.nome);
esse p.nome está tentando pegar o campo nome diretamente, e não há permissão pra isso porque nome é private.

Passo 3

Quando o compilador Java vê p.nome fora da classe Produto, ele reclama que não encontra visibilidade.
A mensagem típica de erro é algo como:
nome has private access in Produto

Resposta

Você vai receber um erro de compilação, pois o atributo nome é private e não pode ser acessado diretamente fora da classe Produto.

Exercícios relacionados