Classes Abstratas – JAVA

Posted by Vinicius Quaiato | Posted in Java | Posted on 27-02-2009-05-2008

0

Segue abaixo a solução para a seguinte situação:
Uma classes abastrata, Pessoa, e duas classes derivadas, com o método CalcularImpostos.

import java.util.ArrayList;

public abstract class Pessoa{
	public Pessoa(){}

    private static ArrayList _impostos = new ArrayList(java.util.Arrays.asList(10,20,30,40,50));
    public static ArrayList getImpostos(){return _impostos;}

	public abstract double CalcularImpostos();
}

Assim definimos nossa classe Pessoa.
Ela possui dois métodos, um deles é meramente auxiliar, pois irá nos fornecer uma lista de valores, para efetuarmos uma conta.
O outro método é marcado com o modificador abstract e devemos notar que ele apenas possue os parenteses,  não possui nenhum corpo. Isto significa que ele deve ser implementado pelas classes derivadas.

Assim vamos ver como ficou a implementação de nossas classes derivadas.
Primeiro PessoaJuridica:

import java.util.Iterator;

public class PessoaJuridica extends Pessoa{
	public double CalcularImpostos(){
		Integer resultado = 0;
		for(Iterator impostos = getImpostos().iterator(); impostos.hasNext();){
			resultado+=((Integer)impostos.next()) + 2;
		}

		return resultado;
	}
}

E a classe PessoaFisica:

import java.util.Iterator;

public class PessoaFisica extends Pessoa{
	public double CalcularImpostos(){
		Integer resultado = 0;
		for(Iterator impostos = getImpostos().iterator(); impostos.hasNext();){
			resultado+=((Integer)impostos.next());
		}

		return resultado;
	}
}

Agora no método main invocamos as duas classes e vemos os resultados calculados de acordo com os métodos de cada tipo da classe pessoa:

import java.util.Iterator;

public class Main {
    public static void main(String[] args) {
        Pessoa fisica = new PessoaFisica();
        Pessoa juridica = new PessoaJuridica();

        System.out.println("Pessoa Física:");
        for(Iterator impostos = Pessoas.getImpostos().iterator(); impostos.hasNext();)
            System.out.println(impostos.next() + "+");
        System.out.println("-------------------");
        System.out.println(fisica.CalcularImpostos());

        System.out.println("Pessoa Jurídica:");
        for(Iterator impostos = Pessoas.getImpostos().iterator(); impostos.hasNext();)
            System.out.println("(" + impostos.next() + "+2) +");
        System.out.println("-------------------");
        System.out.println(juridica.CalcularImpostos());
    }
}

Bom é isso, qualquer dúvida ou sugestão, estamos aqui.

O inicio…

Posted by Vinicius Quaiato | Posted in Geral | Posted on 26-02-2009-05-2008

4

Fala seus fedoras!

Este é o início do blog dos relaxos!

Aqui todos os relaxos podem postar, sem moderação!

Qualquer assunto é válido, desde que bem categorizado =]

Teremos assuntos como futebol, Tecnologia, Desenvolvimento, e qualquer coisa que queiramos!

Abraços.