Boa noite pessoal, eu de novo, como estou estudando bastante acabam surgindo muitas dúvidas. Resolvi reproduzir um sistema de uma planilha em Excel que eu criei para a empresa em que trabalho. E cheguei no seguinte ponto:
O sistema é de uma Trading de grãos do grupo de empresas, basicamente este sistema faz a analise de margem de compra e vendas de grãos (Milho, Soja e Feijão). Para isto um dos passos mais importantes é o calculo de imposto, o qual eu tenho completo domínio. Ao tentar levar isso pro Java, minha ideia foi de criar uma classe ICMS mãe, com 3 filhas IcmsMilho, IcmsSoja, IcmsFeijão. Porém eu preciso decidir no código qual das 3 classes usar na variável icms porque o cálculo de impostos para cada um deles é diferente. Aí que pensei bom, posso tratar isso com um if … Coloco um input para escolher o produto e dependendo de qual produto ele escolher eu instancio a classe correta. O grande problema é que não compila, porque da forma que está o java fica acusando que a variável não está iniciada e a classe ICMS é abstrata. Alguém me ajuda por favor ?
public class Main {
public static void main(String[] args) {
String produto = "";
Icms icms;
ArrayList<String> index = new ArrayList<String>();
index.add("1");
index.add("2");
index.add("3");
produto = JOptionPane.showInputDialog("Digite o número do produto:\n1 - Milho\n2 - Soja\n3 - Feijão")
.toString();
if (produto.equals("1")) {
icms = new IcmsMilho();
} else if (produto.equals("2")) {
icms = new IcmsSoja();
} else if (produto.equals("3")) {
icms = new IcmsFeijao();
}
while (!index.contains(icms.getEstadoDaFilial())) {
icms.setEstadoDaFilial(JOptionPane
.showInputDialog("Digite o número do estado da Filial Cereais Sul:\n1 - GO\n2 - MG\n3 - DF")
.toString());
}
while (!index.contains(icms.getEstadoDeSaida())) {
icms.setEstadoDeSaida(
JOptionPane.showInputDialog("Digite o estado de entrada:\n 1 - GO\n2 - MG\n3 - DF").toString());
}
while (!index.contains(icms.getAtividade())) {
icms.setAtividade(JOptionPane
.showInputDialog(
"Digite o número da atividade do produtor:\n1 - Produtor\n2 - Cooperativa\n3 - Cerealista")
.toString());
}
}
}