Você está na página 1de 3

POO - Programação Orientada a Objetos - Exercício Resolvido 6 - A classe Produto (construtores, métodos, getters e

setters e encapsulamento)

Pergunta/Tarefa:

Crie uma classe Produto para representar um produto do mundo real. Sua classe deverá conter os seguintes atributos
e métodos:

1) Um campo de dados privado do tipo String chamado nome, que representará o nome do produto.
2) Um campo de dados privado do tipo double chamado precoCusto, que guardará o preço de custo do produto.
3) Um campo de dados privado do tipo double chamado precoVenda, que guardará o preço de venda do produto.
4) Um campo de dados privado do tipo double chamado margemLucro, que guardará a margem de lucro do produto.
5) Métodos públicos get() e set() para os atributos acima. Modifique o método setPrecoVenda() para que o preço de
venda não seja inferior ao preço de compra. Caso isso aconteça, exiba uma mensagem alertando o usuário.
6) Crie um método chamado calcularMargemLucro() que calculará a margem de lucro do produto.
7) Crie um método chamado getMargemLucroPorcentagem() que retornará a margem de lucro como percentual.

Para finalizar, no método main() da classe de teste, crie um novo objeto da classe Produto, peça para o usuário
informar os preços de custo e de venda e exiba a margem de lucro em moeda e em percentual. Sua saída deverá ser
algo parecido com o mostrado na imagem abaixo:

Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

Produto.java:

package estudos;

public class Produto{


private String nome; // nome do produto
private double precoCusto; // preço de custo do produto
private double precoVenda; // preço de venda do produto
private double margemLucro; // margem de lucro do produto

// obtém a margem de lucro


public double getMargemLucro(){
return margemLucro;
}

// define a margem de lucro


public void setMargemLucro(double margemLucro){
this.margemLucro = margemLucro;
}

// obtém o nome do produto


public String getNome(){
return nome;
}
// define o nome do produto
public void setNome(String nome){
this.nome = nome;
}

// obtém o preço de custo


public double getPrecoCusto(){
return precoCusto;
}

// define o preço de custo


public void setPrecoCusto(double precoCusto){
this.precoCusto = precoCusto;
}

// obtém o preço de venda


public double getPrecoVenda(){
return precoVenda;
}

// define o preço de venda


public void setPrecoVenda(double precoVenda){
// o preço de venda não pode ser menor que o preço de custo
if(precoVenda < this.precoCusto){
System.out.println("O preço de venda não pode ser inferior ao de custo");
}
else{
this.precoVenda = precoVenda;
}
}

// calcula a margem de lucro


public void calcularMargemLucro(){
this.margemLucro = this.precoVenda - this.precoCusto;
}

// retorna a margem de lucro em porcentagem


public double getMargemLucroPorcentagem(){
return (this.margemLucro / this.precoCusto) * 100;
}
}

Veja agora o método main() que nos permite testar a funcionalidade da classe Produto:

package estudos;

import java.util.Scanner;

public class Estudos {


public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);

// vamos criar um novo objeto da classe Produto


Produto p = new Produto();

// vamos ler o preço de custo


System.out.print("Informe o preço de custo: ");
p.setPrecoCusto(Double.parseDouble(entrada.nextLine()));
// vamos ler o preço de venda
System.out.print("Informe o preço de venda: ");
p.setPrecoVenda(Double.parseDouble(entrada.nextLine()));

// vamos calcular a margem de lucro


p.calcularMargemLucro();

// vamos exibir os resultados


System.out.println("Preço de custo: " + p.getPrecoCusto());
System.out.println("Preço de Venda: " + p.getPrecoVenda());
System.out.println("Margem de Lucro: " + p.getMargemLucro());
System.out.println("Margem de Lucro Percentual (%): " +
p.getMargemLucroPorcentagem());
}
}

Você também pode gostar