Não consegui ver meu erro...na parte final do código

Amigos, estou fazendo o seguinte, instancio com scanner algumas classes que…

Pego simplificando o preco de um produto multiplicando a quantidade…apartir dai tenho o valor parcial da nota.
Com o ValorParcial tenho de calcular o ValorComImposto onde devo especificar que se for 1 pego a % do icmsRS se for 2 pego a % de icmsSC, e multiplico a exemplo se for 1 o valorParcial x 17 /100 = xxx

  1. Só que nao estou conseguindo instanciar a classe dos estados IcmsRS ou IcmsSC com os valores de cada estado tipo se for 1 = RS tenho de pegar o valor 17 e calcular dentro.

  2. nao consigo mostrar direito o estado escolhido e o valor total com o imposto deduzido.

segue as classes

[code]public class NotaFiscal {

public static void main(String args[]) {
	// Creating new invoice without using the constructor
	ItemNota items = new ItemNota("", "", 0, 0.0,0);

	items.setCodProduto();
	items.setDescricao();
	items.setQuantidade();
	items.setPreco();
	items.setUf();
	items.getValorParcial();
	
	items.getValorComIposto();
	items.getMostraTela();
	
	}

}[/code]

[code]import java.util.Scanner;

public class ItemNota {

Scanner input = new Scanner(System.in);

private String codigo;
private String descricao;
private int quant;
private double preco;
private int Uf;

public ItemNota(String cod, String desc, int quant, double pric, int uf_imp)
{
	this.codigo = cod;
	this.descricao = desc;
	this.quant = quant;
	this.preco = pric;
	this.Uf = uf_imp;
}

public void setCodProduto ()
{
	System.out.printf("Qual o codigo do produto: ");
	String cod = input.nextLine();
	System.out.println();
	this.codigo = cod;
}

public void setDescricao()
{
	System.out.printf("Descrição do produto: ");
	String desc = input.nextLine();
	System.out.println();
	this.descricao = desc;
}

public void setQuantidade ()
{
	System.out.printf("Qual a quantidade: ");
	
	int quant = input.nextInt();
	System.out.println();
	
	if (quant < 0)
	{
		this.quant = 0;
	}
	else
	{
		this.quant = quant;
	}
}

public void setPreco ()
{
	System.out.printf("Qual o preco do produto: ");
	
	double prec = input.nextDouble();
	System.out.println();
	
	if (prec < 0)
	{
		this.preco = 0.0;
	}
	else
	{
		this.preco = prec;
	}
}



public String getCodProduto ()
{
	return this.codigo;
}


public String getDescricao ()
{
	return this.descricao;
}

public int getQuantidade ()
{
	return this.quant;
}

public double getPreco ()
{
	return this.preco;
}

  
public double getValorParcial()
{
	double valor;
	
	
	valor = this.preco * (double) this.quant;
	
	if (valor < 0)
	{
		return 0.0;
	}
	else
	{
		return valor;
	}
			
}







public int getUf() {
	return Uf;
}

public void setUf() {
	
	System.out.printf("Qual o Estado para o imposto 1- RS ou 2-SC: ");
	int uf_imp = input.nextInt();
	
	System.out.println();
	this.Uf = uf_imp;
}

public double getValorComIposto(){
	
	double valor = getValorParcial();
	int estado = getUf();
	
	IcmsRS rs = new IcmsRS();
	int icmsRS = rs.getImpostoRS();
	
	IcmsSC sc = new IcmsSC();
	int icmsSC = sc.getImpostoSC();
	if (estado ==1)
	{
		//IcmsRS rs = new IcmsRS();
		//int icms = rs.getImpostoRS();
		valor = valor * icmsRS;
		return valor;
	}
	else
	{
		//IcmsSC sc = new IcmsSC();
		
		valor = valor * icmsSC;
		return valor;
		
	}
	
	
}




public void getMostraTela()
{
	System.out.printf("Historico\n%s - %s\n%d X %.2f = %.2f\n\n%s\n", getCodProduto(),
            getDescricao(), getQuantidade(), getPreco(),getValorParcial(),getUf());
	//aqui quando vou amostrar o GetUf..esta dando problema..nao consigo mostrar o estado e o valor com o imposto calculado
}

}
[/code]

[code]public class IcmsRS {

int impostoRS;

public int getImpostoRS() {
	return impostoRS = 17;
}

public void setImpostoRS(int impostoRS) {
	this.impostoRS = impostoRS;
}

}
[/code]

[code]public class IcmsSC {

int impostoSC;

public int getImpostoSC() {
	return impostoSC = 12;
}

public void setImpostoSC(int impostoSC) {
	this.impostoSC = impostoSC;
}

}
[/code]

Organiza esse código que você consegue entendê-lo melhor. Tá uma gambi feia de se ver :smiley:

Você instancia um ItemNota com valores padrão e depois usa o set sem passar nada como parâmetro pro Scanner colocar os valores… não é muito mais fácil pegar todos os valore por um Scanner no método main e só depois instanciar já tendo todos os valores de que precisa na mão?

Eu sei que está uma gambiarra danada, sou iniciante em java, aos poucos vou aprendendo a formatar padronizado melhor o código.
E este trabalho deve ser nesta forma de classes…com o main na NotaFiscal…pegando como atributo a quant do itemNota e fazendo calculos refletindo nas classes de categorias de Icms por estado.