Duvida simples

3 respostas
java
T

olá bom dia!

tenho um classe chamada contacorrente aonde possuo um atributo numero da conta
e outro digito

para usar esses atributos privates tenho um metodo setNumero e setDigito, no meu metodo setNumero possuo este codigo:

if(numero >= 1000 && numero <= 9999){

int dig1 = numero/1000;

int dig2 = (numero%1000)/100;

int dig3 = (numero%100)/10;

int dig4 = numero%10;
int mult1 = dig1 * 4;
     int mult2 = dig2 * 6;
     int mult3 = dig3 * 8;
     int mult4 = dig4 * 2;
     
     int soma = mult1 + mult2 + mult3 + mult4;
     this.digito = soma%11;
     
        if(this.digito == 10){
           this.digito = 0;
           this.numero = numero;
           
        }else{
           this.digito = digito;
        this.numero = numero;
        }
        
     }else{    
     System.out.println("Numero inváligo");
  }

}

aonde digo que esse numero deverá ser apenas de 4 digitos, e criei um padrão para o calculo do meu digito, no caso do codigo o numero tem que estar entre 1000 e 9999
a soma dos digitos vezes uns numeros escolhidos por min (esta no codigo) será meu digito…

A minha dificuldade é … como eu coloco o valor do meu digito desta classe, sendo que ele esta sendo gerado a partir de um setNumero que faz parte do atributo numero?

3 Respostas

D

Olá

this.digito = digito; ou setDigito(digito);

T

se eu colocar esse seu codigo, ele vai buscar o valor que eu defini pra digito dentro do meu método?

D

Ficou confuso, vc quer colocar o valor ou obter o valor?

método para obter o valor do digito:

public int getDigito() {
    return this.digito;
}

método para colocar o valor:

public void setDigito(int digito) {
    this.digito = digito;
}

para testar

public static void main(String args[]) {
    ContaCorrente cc = new ContaCorrente();
    cc.setDigito(5);
    System.out.println("Teste com set digito 5: " + cc.getDigito()); // deve imprimir 5
    cc.setNumero(7773);
    System.out.println("Teste com set numero 7773: " + cc.getDigito()); // deve imprimir 0
    cc.setNumero(2536);
    System.out.println("Teste com set numero 2536: " + cc.getDigito()); // deve imprimir 8
}
Criado 6 de abril de 2016
Ultima resposta 6 de abr. de 2016
Respostas 3
Participantes 2