Os metodos Getter servem para voce poder retornar os valores de uma variavel num objeto ou de um objeto. Como exemplo, vamos pegar os atributos "nome" e "preco" e printa-los na tela desta forma:
package relatorioproduto;
public class PrincipalRel {
public static void main(String[] args) {
Produto produto = new Produto();
produto.setNome("Garrafa");
produto.setPrice(98.90);
System.out.println("Nome do Produto: " + produto.getNome());
System.out.println("Preco do Produto: " + produto.getPrice());
}
}
A saida no console e esta:

Os metodos Getters tambem servem para fazer comparacoes em condicionais, como por exemplo, ver se o preco do produto e maior que 100, nesta usei operador ternario:
public class PrincipalRel {
public static void main(String[] args) {
Produto produto = new Produto();
produto.setNome("Garrafa");
produto.setPrice(98.90);
// if (produto.getPrice() > 100) {
// System.out.println("Preco e maior que cem");
// } else {
// System.out.println("Preco e menor que cem");
// }
String result = produto.getPrice() > 100 ? "Preco e maior que cem" : "Preco e menor que cem"; // Operador Ternario
System.out.println(result);
}
}
Saida:
Ja os metodos Setters servem como um refresh ou update, eles atualizam o valor padrao da variavel para um novo valor passado, seja por meio de um Scanner ou alguma outra logica interna do programa, uma forma caso voce nao queria que os valores se tornem mutaveis no seu Objeto, voce poderia passa-los direto no construtor, desta forma os valores nao poderiam ser alterados apenas acessado pelos Getters assim:
Versao sem lombok com boilerplate
package relatorioproduto;
public class Produto {
private final String nome;
private final double price;
private final int quantidade;
public Produto(String nome, double price, int quantidade) {
this.nome = nome;
this.price = price;
this.quantidade = quantidade;
}
public String getNome() {
return nome;
}
public double getPrice() {
return price;
}
public int getQuantidade() {
return quantidade;
}
public void exibir(){
System.out.printf("Produto: %s \nPreço: R$ %.2f \nQuantidade em estoque: %d", nome, price, quantidade);
}
}
Versao com lombok sem boilerplate
package relatorioproduto;
@lombok.Getter(value = lombok.AccessLevel.PUBLIC)
@lombok.AllArgsConstructor(access = lombok.AccessLevel.PUBLIC)
public class Produto {
private final String nome;
private final double price;
private final int quantidade;
public void exibir(){
System.out.printf("Produto: %s \nPreço: R$ %.2f \nQuantidade em estoque: %d", nome, price, quantidade);
}
}
Class Main
package relatorioproduto;
public class PrincipalRel {
public static void main(String[] args) {
Produto produto = new Produto("Garrafa", 98.90, 2);
System.out.println("Name: " + produto.getNome());
System.out.println("Price: " + produto.getPrice());
System.out.println("Quantity: " + produto.getQuantidade());
}
}
Saida:
Espero te-la ajudado, boa sorte em seus estudos!