Você está na página 1de 2

Métodos e Técnicas de Programação

1) O código a seguir, composto pelas classes Produto, Livro e Livraria, utiliza o método println para
imprimir certas informações. Escreva exatamente a forma como essas informações serão impressas na
tela, após sua execução.

Arquivo Produto.java Arquivo Livro.java


package livraria; package livraria;
public class Produto { public class Livro extends Produto{
private String codigo; private String titulo;
private double preco; private String avaliacao;
public Produto(String c, double pr) { public Livro(String titulo, String codigo,
this.codigo = c; double preco) {
this.preco = pr; super(codigo, preco);
} this.titulo = titulo;
public String getCodigo() { }
return codigo; public String getTitulo() {
} return titulo;
public void setCodigo(String codigo) { }
this.codigo = codigo; public void setTitulo(String titulo) {
} this.titulo = titulo;
public double getPreco() { }
return preco; public String getAvaliacao() {
} return avaliacao;
public void setPreco(double preco) { }
this.preco = preco; public void setAvaliacao(String avaliacao) {
} this.avaliacao = avaliacao;
@Override }
public String toString() { public void otimo() {
return "codigo: " + getCodigo() + this.avaliacao = "otimo";
", preco: " + getPreco(); }
} public void regular() {
} this.avaliacao = "regular";
}
public void pessimo() {
this.avaliacao = "pessimo";
}
public String avalia(){
return titulo + " é um livro "+ avaliacao;
}
@Override
public String toString() {
return super.toString() + ", titulo: " +
getTitulo();
}
}
Métodos e Técnicas de Programação

Arquivo Livraria.java
package livraria;
import java.util.ArrayList;
public class Livraria {
public static ArrayList<Produto> produtos = new ArrayList();
public static void aumento(double x){
for(Produto p:produtos)
p.setPreco(p.getPreco()*(100+x)/100);
}
public static Produto consultarPorCodigo(String codigo){
for(int i=0; i<produtos.size(); i++)
if (produtos.get(i).getCodigo().equals(codigo))
return produtos.get(i);
return null;
}
public static void main(String[] args) {
produtos.add(new Produto("001",40.00));
produtos.add(new Produto("002",60.00));
produtos.add(new Produto("003",45.00));
System.out.println(produtos);
aumento(10);
System.out.println(produtos);
produtos.add(new Livro("Programando em Java","004",80.00));
produtos.add(new Livro("À noite andamos em círculos","005",32.00));
produtos.add(new Livro("Irmãos Karamazov","006",110.00));
System.out.println(produtos);
((Livro)consultarPorCodigo("004")).otimo();
((Livro)consultarPorCodigo("005")).regular();
((Livro)consultarPorCodigo("006")).setAvaliacao("dificil");
for(int i=3; i<6; i++){
System.out.println(((Livro)produtos.get(i)).avalia());
}
}
}
Tela:

2) Escreva um método imprimeCodigo para imprimir somente o código de todos os produtos da lista
produtos, na classe Livraria.

3) Ao final do método main, escreva comandos para inserir mais um livro na lista produtos, avaliar este
livro como “péssimo” e imprimir a lista de produtos atualizada.

4) A livraria decidiu dar um desconto de 20% no preço de todos os livros. Na classe Livro, sobrescreva o
método getPreco() da classe Produto para que retorne o valor do preço original com o desconto
oferecido.
Exemplo: se um livro foi cadastrado com o preço de 50.00, o método getPreco() deve retornar o valor de
40.00; já um outro produto, digamos, uma mochila, cadastrada com o preço de 50.00, deve retornar o
preço sem o desconto, ou seja, 50.00.

Você também pode gostar