Calcular IPTU , porém eu não tenho a variável aliquota como atributo?

package exercicio7;

public class Imovel 
{
    private String endereco;
    private int quantidadeComodos;
    private String nomeProprietario;
    private double metragem;

    public Imovel() 
    {
    }

    public String getEndereco()
    {
        return endereco;
    }

    public void setEndereco(String endereco) 
    {
        this.endereco = endereco;
    }

    public int getQuantidadeComodos() 
    {
        return quantidadeComodos;
    }

    public void setQuantidadeComodos(int quantidadeComodos) 
    {
        this.quantidadeComodos = quantidadeComodos;
    }

    public String getNomeProprietario() 
    {
        return nomeProprietario;
    }

    public void setNomeProprietario(String nomeProprietario)
    {
        this.nomeProprietario = nomeProprietario;
    }

    public double getMetragem() 
    {
        return metragem;
    }

    public void setMetragem(double metragem)
    {
        this.metragem = metragem;
    }

    public double calcularValorVenal(double valorMetroCidade) 
    {
        double ValorVenal = this.metragem * valorMetroCidade;
        return ValorVenal;
    }

    public double calcularIPTU(double valorVenal, int aliquotaCidade)
    {
        return this.calcularValorVenal(valorVenal) * aliquotaCidade;
    }
}
package exercicio7;

public class Principal 
{

    public static void main(String[] args)
    {
        Imovel imovel1 = new Imovel();
        imovel1.setEndereco("jj");
        imovel1.setMetragem(30);
        System.out.println("calculo valor venal: " + imovel1.calcularValorVenal(5.00));

    }

}

Pois é, e agora!? Se você não nos disser o que queres fazer fica difícil te ajudar. Qual é a regra de negócio? É um exercício da faculdade (tem enunciado)? Cabe uma classe de tributos? Se pode passar o valor do tributo como um valor literal direto na classe Principal? Muitas questões me aberto, então especifique melhor a questão.

Sim , mas tá estranho , ela deu só um atributo e pede o imposto em cima deste Venal ai , passado por parâmetros. Segue o exercício.

• O valor venal de um imóvel é uma base de seu valor real para calculo de impostos. Para obter seu valor → metragem do imovel * valor do metro2 da cidade
• O IPTU de um imóvel é calculado da seguinte forma → valor venal do imóvel * alíquota da cidade
• Crie uma classe Principal para testar o programa. Crie 3 objetos, um de cada classe.
• O adicional no valor venal do imóvel novo é adicionado depois do cálculo ter sido feito na classe Imóvel. Esse valor é em moeda não em porcentagem.

Que tal assim?

public class Imovel {
	/*Campos da classe*/
	private static final double aliquotaMunicipal = 9.25;
	/*Atributos de instância*/
	private int codigoImovel;
	private boolean novo = false;
	private String endereco;
	private short lote;
	private short quadra;
	private double metragem;
	private double valorVenalAtual;
		
	public void setCodigoImovel(int codigoImovel){
		this.codigoImovel = codigoImovel;
	}
	
	public int getCodigoImovel(){
		return codigoImovel;
	}
	
	public void setNovo(boolean novo){
		this.novo = novo;
	}
	
	public boolean isNovo(){
		return novo;
	}
	
	public void setEndereco(String endereco){
		this.endereco = endereco;
	}
	
	public String getEndereco(){
		return endereco;
	}
	
	public void setLote(short lote){
		this.lote = lote;
	}
	
	public short getLote(){
		return lote;
	}
	
	public void setQuadra(short quadra){
		this.quadra = quadra;
	}
	
	public short getQuadra(){
		return quadra;
	}
	
	public void setMetragem(double metragem){
		this.metragem = metragem;
	}
	
	public double getMetragem(){
		return metragem;
	}
	
	public void setValorVenalAtual(double valorVenalAtual){
		this.valorVenalAtual = valorVenalAtual;
	}
	
	public double getValorVenalAtual(){
		return valorVenalAtual;
	}

	private double getValorMetroQuadrado(){
		double valorMetroQuadrado = 0.00;
		short zona = (short) (getQuadra() % 3);
		
		switch(zona){
			case 0:
				valorMetroQuadrado = 563.15;
				break;
			
			case 2:
				valorMetroQuadrado = 398.10;
				break;
				
			case 3:
				valorMetroQuadrado = 709.18;
				break;
				
			case 5:
				valorMetroQuadrado = 880.60;
				break;
				
			case 7:
				valorMetroQuadrado = 970.04;
				break;
				
			default:
				valorMetroQuadrado = 521.11;
		}
		return valorMetroQuadrado;
	}
	
	public void calcularValorVenal(){
		double valorVenal = 0.00;
		
		valorVenal = this.getMetragem() * this.getValorMetroQuadrado();
		
		if(isNovo())
			this.setValorVenalAtual(this.getValorVenalAtual() + valorVenal);
		
		else
			this.setValorVenalAtual(valorVenal);
		
	}
	
	public double calcularIPTU(){
		
		return this.getValorVenalAtual() * aliquotaMunicipal / 100;
	}
}

import java.text.NumberFormat;

public class Principal {
	public static void main(String[] args){
		NumberFormat nf = NumberFormat.getCurrencyInstance();
		
		/*Imóvel 01*/
		Imovel imovel1 = new Imovel();
		imovel1.setCodigoImovel(1);
		imovel1.setEndereco("Rua José Bonifácio, 75, Centro, Loanda-PR");
		imovel1.setNovo(true);
		imovel1.setLote((short) 5);
		imovel1.setQuadra((short) 1);
		imovel1.setMetragem(54.20);
		imovel1.setValorVenalAtual(22595.33);
		
		/*Imóvel 02*/
		Imovel imovel2 = new Imovel();
		imovel2.setCodigoImovel(2);
		imovel2.setEndereco("Avenida Paraná, 2389, Centro, Loanda-PR");
		imovel2.setNovo(false);
		imovel2.setLote((short) 14);
		imovel2.setQuadra((short) 42);
		imovel2.setMetragem(115.16);
		imovel2.setValorVenalAtual(51881.88);
		
		/*Imóvel 03*/
		Imovel imovel3 = new Imovel();
		imovel3.setCodigoImovel(3);
		imovel3.setEndereco("Rua Natalício Alves, 752, Alto da Glória, Loanda-PR");
		imovel3.setNovo(true);
		imovel3.setLote((short) 17);
		imovel3.setQuadra((short) 103);
		imovel3.setMetragem(87.50);
		imovel3.setValorVenalAtual(129523.10);
		
		imovel1.calcularValorVenal();
		System.out.println("\n\nImóvel: " + imovel1.getCodigoImovel());
		System.out.println("Endereço:  " + imovel1.getEndereco());
		System.out.println("Valor venal: " + nf.format(imovel1.getValorVenalAtual()));
		System.out.println("IPTU: " + nf.format(imovel1.calcularIPTU()));
		
		imovel2.calcularValorVenal();
		System.out.println("\n\nImóvel: " + imovel2.getCodigoImovel());
		System.out.println("Endereço:  " + imovel2.getEndereco());
		System.out.println("Valor venal: " + nf.format(imovel2.getValorVenalAtual()));
		System.out.println("IPTU: " + nf.format(imovel2.calcularIPTU()));
		
		imovel3.calcularValorVenal();
		System.out.println("\n\nImóvel: " + imovel3.getCodigoImovel());
		System.out.println("Endereço:  " + imovel3.getEndereco());
		System.out.println("Valor venal: " + nf.format(imovel3.getValorVenalAtual()));
		System.out.println("IPTU: " + nf.format(imovel3.calcularIPTU()));
	}
}

image

Eu não entendi muito bem essa parte:

1 curtida

Seu código ficou perfeito, o foda é a professora aceitar a sua resposta, ela é muito chata.