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?
c) O valor de nome será acessado por meio do método getNome().

Passo 1

Beleza, vamos resumir o que a questão pediu. A gente tem uma classe Produto que declara
private String nome;
private double preco;
e fornece só um construtor e os getters getNome() e getPreco().
Conteúdo: modificadores de acesso em Java (encapsulamento).
O que vamos precisar: entender o que significa private e como acessar atributos privados de fora da própria classe.

Passo 2

Em Java, o modificador private em cima de um atributo ou método diz “só quem tá dentro desta classe pode ver ou usar isso”. É parte do encapsulamento, que serve pra proteger o estado interno do objeto. Então, fora da classe Produto, você não consegue nem ler nem gravar em nome diretamente – o compilador vai barrar.

Passo 3

Se você tentar algo como:
Produto p = new Produto("Caneta", 5.0);
System.out.println(p.nome);
o compilador vai reclamar na hora de compilar e lançar um erro tipo:
nome has private access in Produto
Isso significa que você não tem permissão pra usar nome desse jeito.

Passo 4

A saída é usar o método público que a própria classe expôs, que chamei de getter. Ou seja:
System.out.println(p.getNome());
Esse método está marcado como public e devolve o valor de nome.

Resposta

Se você tentar acessar nome diretamente fora da classe Produto, dá erro de compilação (“nome has private access in Produto”). O jeito certo é pegar o valor por meio de getNome().

Exercícios relacionados