Classe CPF

Publicado por Jeffeson Luiz Oliveira de Campos 14/10/2008

[ Hits: 7.606 ]

Homepage: http://jeffersoncampos.eti.br

Download cpf.java




Esta classe recebe um cpf e seus respectivos dígitos verificadores. É capaz de validar esse cpf e retornar os dígitos verificadores corretos.

  



Esconder código-fonte

package funcionario;

/**
 * 
 * @author Jefferson Luiz Oliveira de Campos
 * data: 9/10/2008.
 * Este programa é licenciado via GPLv2. Sinta-se a vontade para exercer as 4
 * liberdades... ;) <--> só não esquça de citar o autor.... ^^''
 * 
 * Esta Classe recebe um cpf e seus respectivos digitos verificadores. Ela é 
 * capaz de validar esse cpf e retornar os digitos verificadores corretos.
 * 
 */
public class cpf {
    
    private String nome;
    private String cpf;
    private int dig1;
    private int dig2;

    public cpf (String n, String c, int d1, int d2) {
        this.nome = n;
        this.cpf = c;
        this.dig1 = d1;
        this.dig2 = d2;
        
    }//FIM CPF
    
    public Boolean calcDigVerificador () {
        
        if (this.cpfValido ()){
            if (this.calcDig1 () == this.dig1) {
                //System.out.println ("Dig1 OK!");
                if (this.calcDig2 () == this.dig2) {
                    //System.out.println ("Dig2 OK!");
                    return true;
                } else {
                    System.out.println ("Dig2 Deu merda!");
                    return false;
                }//FIM SENAO
            } else {
                System.out.println ("Dig1 Deu merda!");
                return false;
            }//FIM SENAO
        } else {
            System.out.println ("CPF FORMATO INVALIDO!");
            return false;
        }//FIM SENAO
    }//FIM calcDigVerificador
    
    //Verifica a validade do cpf, indicando como inválido cpf's que possuem 
    //todos os digitos repetidos. Ex.: 111.111.111-11 é inválido.
    public Boolean cpfValido () {
        int i;
        String digInicial = this.cpf.substring(0,1);
        Boolean valido = false;
        
        for (i = 1; i < 9; i++){
            if (!digInicial.equals(this.cpf.substring(i,i + 1))) {
                valido = true;
            }//FIM SE
        }//FIM PARA
        return valido;
    }//FIM cpfValido
    
    public int calcDig1 () {
        int i, resto, dig, soma = 0;
        
        for (i = 0; i < 9; i++) {
            soma += ((Integer.parseInt(this.cpf.substring(i,i + 1))) * (i + 1));
        }//FIM PARA
        
        resto = soma % 11;
        
        if (resto == 10) {
            dig = 0;
        } else {
            dig = resto;
        }//FIM SENAO

        return dig;

    }//FIM calcDig1
    
    public int calcDig2 () {
        int i, resto, dig, soma = 0;
        
        for (i = 0; i < 9; i++) {
            soma += ((Integer.parseInt(this.cpf.substring(i,i + 1))) * (12 - (i + 1)));
        }//FIM PARA
        
        soma += this.calcDig1 () * 2;
        soma *= 10;
        
        resto = soma % 11;
        
        if (resto == 10) {
            dig = 0;
        } else {
            dig = resto;
        }//FIM SENAO
        
        return dig;
        
    }// FIM calcDig2

    public String getCpf () {
        return cpf;
    }

    public void setCpf (String cpf) {
        this.cpf = cpf;
    }

    public int getDig1 () {
        return dig1;
    }

    public void setDig1 (int dig1) {
        this.dig1 = dig1;
    }

    public int getDig2 () {
        return dig2;
    }

    public void setDig2 (int dig2) {
        this.dig2 = dig2;
    }
    
     public String getNome () {
        return nome;
    }

    public void setNome (String nome) {
        this.nome = nome;
    }
    
}//FIM cpf

Scripts recomendados

Programa de sorteio

Colocando informações em variáveis

Ordenação Pelo Método Bolha

Mexendo com gráficos

Caixa eletrônico usando a classe Hashtable


  

Comentários
[1] Comentário enviado por Grisalho35 em 21/06/2009 - 12:59h

Ola estou tentando executar o codigo fonte no Gel Java e o programa apresenta a seguinte mensagem: "O ficheiro corrente não parece ter uma classe com método main". Alguem pode me orientar a respeito deste problema!!

[2] Comentário enviado por foguinho.peruca em 22/06/2009 - 09:46h

Olá!

Este programa, como o erro indica, não possui classe main. Na verdade esta é uma classe que vc pode utilizar em um outro programa principal com o main, bastando instancia-lo no mesmo:

class ExemploMain {
public static void main(String args[]) throws java.io.IOException {
cpf cpfPessoa = new cpf("Bozo","156584391",5,9);
if (cpfPessoa.calcDigVerificador()) {
System.out.println("Deu certo!!!");
} else {
System.out.println("Deu errado!!!");
}
}
}

Este é exemplo bobo.... mas vai testando...
boa sorte...
Jeff


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts