Desafio 1:
package br.com.alura.screenmatch.atividades.capitulo4;
public interface ConversaoFinanceira {
double conversaoDolarParaReal(double dolar);
}
public class ConversorMoeda implements ConversaoFinanceira{
double cotacaoDolar = 6.20;
@Override
public double conversaoDolarParaReal(double dolar) {
return dolar * cotacaoDolar;
}
}
Desafio 2:
package br.com.alura.screenmatch.atividades.capitulo4;
public interface CalculoGeometrico {
void calcularArea(double altura, double largura);
void calcularPerimetro(double altura, double largura);
}
public class CalculadoraSalaRetangular implements CalculoGeometrico{
@Override
public void calcularArea(double altura, double largura) {
System.out.println("O valor da área da sala é: " + altura * largura);
}
@Override
public void calcularPerimetro(double altura, double largura) {
System.out.println("O valor do perímetro da sala é: " + 2 * (altura + largura));
}
}
Desafio 3:
package br.com.alura.screenmatch.atividades.capitulo4;
public interface Tabuada {
void mostrarTabuada(int numero);
}
public class TabuadaMultiplicacao implements Tabuada{
@Override
public void mostrarTabuada(int numero) {
System.out.println("Tabuada do número: " + numero);
for (int i = 1; i <= 10; i++) {
System.out.println(numero + " vezes " + i + " é igual a " + numero * i);
}
}
}
Desafio 4:
package br.com.alura.screenmatch.atividades.capitulo4;
public interface ConversorTemperatura {
void celsiusParaFahrenheit(double celsius);
void fahrenheitParaCelsius(double fahrenheit);
}
public class ConversorTemperaturaPadrao implements ConversorTemperatura{
@Override
public void celsiusParaFahrenheit(double celsius) {
double valorFahrenheit = (celsius * 1.8) + 32;
System.out.println("A temperatura em Fahrenheit é: " + valorFahrenheit + "º");
}
@Override
public void fahrenheitParaCelsius(double fahrenheit) {
double valorCelsius = (fahrenheit - 32) * 5 / 9;
System.out.println("A temperatura em Celsius é: " + valorCelsius + "º");
}
}
Desafio 5:
package br.com.alura.screenmatch.atividades.capitulo4;
public interface Calculavel {
double calcularPrecoFinal();
}
public class Livro implements Calculavel{
private String nome;
private String autor;
private int paginas;
private double preco;
private boolean pagamentoPix = false;
public void setPagamentoPix(boolean pagamentoPix) {
this.pagamentoPix = pagamentoPix;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public int getPaginas() {
return paginas;
}
public void setPaginas(int paginas) {
this.paginas = paginas;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
@Override
public double calcularPrecoFinal() {
if (pagamentoPix){
double descontoPix = 5.0 / 100 // 5%
return preco -= preco * descontoPix;
} else {
return preco;
}
}
}
public class ProdutoFisico implements Calculavel{
private String nome;
private double peso;
private double preco;
private boolean envioComFrete = false;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPeso() {
return peso;
}
public void setPeso(double peso) {
this.peso = peso;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public boolean isEnvioComFrete() {
return envioComFrete;
}
public void setEnvioComFrete(boolean envioComFrete) {
this.envioComFrete = envioComFrete;
}
@Override
public double calcularPrecoFinal() {
if (envioComFrete){
double valorFrete = 9.99;
return preco += valorFrete;
} else {
return preco;
}
}
}
O último desafio não coube aqui.
Usarei o restante dos caracteres para um questionamento: A IDE indicou que a declaração double descontoPix = 5.0 / 100
fosse feita no escopo do if do método calcularPrecoFinal()
, o motivo é economia de recursos/memória? Ou há alguma outra razão?