Duvida no exercicio de sistema bancario

Bom dia pessoal, eu estou fazendo o exercicio de testar conta da apostila FJ-11 e fiz algumas modificações e encontrei um exemplo de validação de cpf e está funcionando. Mas eu não estou conseguindo usar essa validação. Eu gostaria de inserir um cpf assim que eu estivesse criando o objeto e depois disso o programa fazia a validação do cpf, tentei de algumas formas e não deu certo.

Alguém poderia me ajudar?

https://paste.ubuntu.com/p/dZwpYSdKcd/

https://paste.ubuntu.com/p/tzQnFZy2fB/

https://paste.ubuntu.com/p/xQCBr57wBC/

https://paste.ubuntu.com/p/dS7yTVPb7y/

Pensei em usar o método dentro dos parâmetros do construtor mais não sei se isso é possível e certo. Eu gostaria de apenas digitar o cpf na quando eu instancio o objeto e depois verificasse se o cpf é valido e imprimia na tela, mas travei nisso.

Desde já agradeço

Por que não chama o método isCFP quando for finalizar, exemplo em um botão salvar, ai ele iria verificar ai teria a instância.

Você colocaria isto dentro de um JButton

Classe dados = new Classe

if ( (dados.isCPF(JTextfield.getText()) ) == true){

system.out.println(“O cpf esta correto!”);
};

Pessoal desculpem a demora, mas para fim de informação, eu consegui fazer o sistema conforme estava querendo. Eu encontrei no site devmidia o algoritmo para validação de cpf, nao imaginava que tinha uma logica com os últimos dois dígitos

`package bancoandrade;

public class BancoAndrade {

public static void main(String[] args) {
    Data dtn1 = new Data(04, 01, 1990);
    String meuCPF = "36393374845";
    if (Cliente.isCPF(meuCPF) == true){
        System.out.println("CPF: " + Cliente.imprimeCPF(meuCPF));
    }else {System.out.println("CPF inválido !!!");
    }
    Cliente cli1 = new Cliente("José", "Da Silva", meuCPF,dtn1);
    Data dta1 = new Data(31, 07, 2018);
    Conta c1 = new Conta(123,cli1, 0.0, "123-4",dta1);
    int total =Conta.getTotalDeContas();
    c1.setSaldo(300.0);
    c1.deposita(200.0);
    c1.saca(100.0);
    c1.saca(40);
    System.out.println(c1.recuperaDadosParaImpressao());
}

}`.

package bancoandrade;

import java.util.InputMismatchException;

class Cliente {
private String nome;
private String sobrenome;
private String cpf;
private Data dataNascimento;

    Cliente (String n, String sb, String cpf, Data dtnasc){
        this.nome = n;
        this.sobrenome = sb;
        this.cpf = cpf;
        this.dataNascimento = dtnasc;
    }
public String getNome(){
	return this.nome;
}
    public void setNome(String n){
        this.nome = n;   
    }
    public String getSobreNome(){
        return this.sobrenome;
    }
    public void setSobreNome(String n){
        nome = n;
    }
    public static boolean isCPF(String cpf){
        // considera-se erro cpf's formados por uma sequencia de números iguais
        if(cpf.equals("00000000000")|| cpf.equals("11111111111")||
           cpf.equals("22222222222")|| cpf.equals("33333333333")||
           cpf.equals("44444444444")|| cpf.equals("55555555555")||
           cpf.equals("66666666666")|| cpf.equals("77777777777")||
           cpf.equals("88888888888")|| cpf.equals("99999999999")||
          (cpf.length() != 11))
            return(false);
        
        char dig10, dig11;
        int sm, i, r, num, peso;
        
        // "try" - protege o código para eventuais erros de coversão de tipo (int)
        try {
        // Cálculo do primeiro Digito Verificador
            sm = 0;
            peso = 10;
            for(i=0; i<9; i++){
        // converte o i-esimo caractere do CPF em um numero:
        // por exemplo, transforma o caractere '0' no inteiro 0
        // (48 é a posição de '0'na tabela ASCII)
            num = (int)(cpf.charAt(i) - 48);
            sm = sm + (num * peso);
            peso = peso - 1;
            }
            r = 11 - (sm %11);
            if ((r == 10)||(r == 11))
                dig10 = '0';
            else dig10 = (char)(r + 48); // converte no respectivo caractere numerico
            
        // Calculo do segundo Digito Verificados
            sm = 0;
            peso = 11;
            for(i=0; i<10; i++){
                num = (int)(cpf.charAt(i) - 48);
                sm = sm + (num * peso);
                peso = peso -1;
            }
            
            r = 11 -(sm % 11);
            if ((r == 10)|| (r == 11))
                dig11 = '0';
            else dig11 = (char)(r + 48);
            
    // Verifica se os digitos calculados conferem com os digitos informados.
            if ((dig10 == cpf.charAt(9)) && (dig11 == cpf.charAt(10)))
                return(true);
            else return(false);
        } catch (InputMismatchException erro){
            return(false);
        }
    }
    public static String imprimeCPF(String cpf){
        return(cpf.substring(0, 3) + "." + cpf.substring(3, 6) + "." + 
          cpf.substring(6, 9) + "-" + cpf.substring(9, 11));
    }
    public Data getdataNascimento(){
        return this.dataNascimento;
    }     

}

package bancoandrade;

class Conta {
private static int totalDeContas;
private int numero;
private Cliente titular;
private double saldo;
private double limite;
private String agencia;
private Data dataDeAbertura;

//contrutor
Conta(int n, Cliente t, double s, String a, Data d){
    totalDeContas++;
    numero = n;
    titular = t;
    saldo = s;
    agencia = a;
    dataDeAbertura = d;
    
}
public static int getTotalDeContas(){
    return Conta.totalDeContas;
}

public double getSaldo(){
    return this.saldo + this.limite;
}
public void setSaldo(double saldo) {
    this.saldo = saldo;
}
public void saca(double valor) {
    //posso sacar at? o saldo
    if (valor > this.saldo) {
        System.out.println("Não posso sacar um valor maior que o saldo");
    } else {
        this.saldo = this.saldo - valor;
    }
}

void deposita(double quantidade) {
    if (quantidade > 0){
        this.saldo += quantidade;
    } else {
        System.out.println("Deposite um valor positivo");
    }

}
double calculaRendimento(){
    return this.saldo = this.saldo*0.1;
}
String recuperaDadosParaImpressao(){
    String dados = "Titular: "+titular.getNome()+" "+titular.getSobreNome();
    dados += "\nData de nascimento: "+ titular.getdataNascimento().getDia()+"/"+titular.getdataNascimento().getMes()+"/"+titular.getdataNascimento().getAno();
    dados += "\nNúmero: "+numero;
    dados += "\nAgência: "+agencia;
    dados += "\nSaldo Atual: "+saldo;
    dados += "\nRendimento mensal: "+calculaRendimento();
    dados += "\nData de abertura da conta: "+dataDeAbertura.getDia()+"/"+dataDeAbertura.getMes()+'/'+dataDeAbertura.getAno();
    //inserir outras informações da conta
    return dados;
}

}

package bancoandrade;

class Data {
private int dia;
private int mes;
private int ano;

Data(int d, int m, int a){
    dia = d;
    mes = m;
    ano = a;
}

public int getDia(){
    return this.dia;
}
public void setDia(int d){
    this.dia = d;
}
public int getMes(){
    return this.mes;
}
public void setMes(int m){
    this.mes = m;
}
public int getAno(){
    return this.ano;
}
public void setAno(int a){
    this.ano = a;
}

}