Esse é o erro:
Exception in thread “main” java.lang.Error: Unresolved compilation problems:
The constructor CarrodaRevenda(String, String, String) is undefined
Keyboard cannot be resolved
at Principal.DemoEstoqueDaRevenda.main(DemoEstoqueDaRevenda.java:10)
Classes:
package Principal;
public class CarrodaRevenda {
// ano de fabricação, ano do modelo, modelo, marca, preço,
private String modelo,marca,versão;
private String codigo;
private short estoque;
private float pVenda;
/**
*Este construtor para classe CarrdaRevenda recebe valores para inicializar os
*campos da classe
*@param mod o modelo do carro
*@param fab a marca do carro
*@param ver a versão do modelo
*@param cod o codigo
*@param est o numero de unidades de carro
*@param pv o preço de venda
*/
CarrodaRevenda (String mod, String fab, String ver, String cod, short est, float pv)
{
modelo = mod; marca = fab; versão = ver;
codigo = cod; estoque = est; pVenda = pv;
}
/**
* O método quantidadeNoEstoque retorna o estoque do livro encapsulado.
* @return o estoque do carro encapsulado.
*/
public short quantosNoEstoque()
{
return estoque;
}
/**
* O método qualPreçodeVenda retorna o preço da venda do carro encapsulado.
* @return o preço da venda do carro encapsulado
*/
public float qualPreçodeVenda()
{
return pVenda;
}
public String qualCodigo()
{
return codigo;
}
public String qualModelo()
{
return modelo;
}
public void incrementaEstoque()
{
estoque++;
}
public void decrementaEstoque()
{
estoque--;
}
/**
* O método toString retorna uma string contendo os campos desta classe.
* @retrun uma string com os valores dos campos desta classe
*/
public String toString()
{
String res = "Marca:"+marca+"\n"+
"Modelo:"+modelo+"\n"+
"Versão"+versão+"\n"+
"Codigo"+codigo+"\n"+
"Estoque"+estoque+"\n"+
"Preço de Venda:"+pVenda+"\n";
return res;
}
}
package Principal;
import java.util.*;
/**
- A classe EstoqueDaRevenda representa uma coleção de instancias da classe
- CarrodaRevenda. As instancias serão armazenadas em um mapa.
*/
public class EstoqueDaRevenda {
private Map estoque;
private float saldoDoCaixa; // valor das vendas efetuadas
/**
* O construtor dessa classe inicializa os campos da classe.
*/
EstoqueDaRevenda()
{
estoque = new HashMap ();
}
/**
* O método adicionaCarro adiciona um carro à colocação representada por esta classe.
*@param livro uma instancia da classe CarrodaRevenda
*/
public void adicionaCarro(CarrodaRevenda carro)
{
String cod = carro.qualCodigo();// recupera o codigo pra usar como chave
estoque.put(cod,carro); // adicionamos o livro com esta cahve ao mapa
}
/**
* O método mostraCaixa mostra o balanço do caixa.
*/
public void mostraCaixa()
{
System.out.println("Saldo do caixa: "+saldoDoCaixa);
}
/**
* O método vendeCarro simula a venda de um carro do estoque. O Codigo de um dos
* carros no estoque será pedido e o carro correspondente terá seus dados
* modificados
*/
public void vendeCarro()
{
//Recuperamos um codigo do carro no estoque com um menu
String codigo = escolheCarro();
//Recuperamos o carro correspondente do mapa
CarrodaRevenda carro = (CarrodaRevenda)estoque.get(codigo);
if (carro.quantosNoEstoque() > 0)
{
carro.decrementaEstoque();
saldoDoCaixa += carro.qualPreçodeVenda();
System.out.println("Quantidade do carro"+carro.qualModelo()+" no estoque:"+ carro.quantosNoEstoque());
mostraCaixa();
}
else
System.out.println("Não tempos o carro"+ carro.qualModelo()+" no estoque!");
}
/**
* O método escolheCarro (declarado com privado, para ser usado somente por outros
* métodos nesta classe) permite a escolha de um carro a partit de um número(entrada
* de um menu). Seria mais simples para o programador fazer o usuário entrar
* diretamente o codigo do carro, o que seria mais complicado para o usuário de uma
* aplicação que usasse este método (o usuário poderia digitar valores incorretos).
* @return o codigo do carro escolhido ( como uma String)
*/
private String escolheCarro()
{
System.out.println("=============");
ArrayList listaDeCodigos = new ArrayList (estoque.keySet());
for (int indice=0; indice<listaDeCodigos.size();indice++)
{
CarrodaRevenda carro = (CarrodaRevenda)estoque.get(listaDeCodigos.get(indice));
System.out.println((indice+1)+" "+carro.qualModelo()+": R$ "+carro.qualPreçodeVenda());
System.out.println("====================");
}
int opção = Keyboard.readInt();
while ((opção <= 0) || (opção > listaDeCodigos.size()) )
{
System.out.println("Por Favor entre com um valor entre 1 e"+ listaDeCodigos.size());
opção = Keyboard.readInt();
}
return (String)listaDeCodigos.get(opção-1);
}
public String toString()
{
StringBuffer resultado = new StringBuffer();
resultado.append("=============");
Interator carros = estoque.KeySet().iterator();
while (carros.hasNext())
{
CarrodaRevenda carro = (CarrodaRevenda)estoque.get(carros.next());
resultado.append(carro.toString());
resultado.append("============");
}
return resultado.toString();
}
package Principal;
public class DemoEstoqueDaRevenda {
private static EstoqueDaRevenda estoque;
public static void main(String[] args) {
estoque = new EstoqueDaRevenda ();
estoque.adicionaCarro(new CarrodaRevenda("Chevrolet",
"Celta","Life"));
boolean continua=true;
while(continua)
{
System.out.println("Menu");
System.out.println("1 - Consulta Estoque");
System.out.println("2 - Vende Carro");
System.out.println("3- Mostra Caixa");
System.out.println("Opção =>");
char opção = Keyboard.readChar();
switch(opção)
{
case '1': System.out.println(estoque);break;
case '2': estoque.vendeCarro() ;
case '3': estoque.mostraCaixa();
default : System.out.println("Opção ["+opção+"] desconhecida!");
}
}
}
}