2
respostas

Método private

Assisti o vídeo de Modificadores de Acesso, usando meu arquivo utilizado no vídeo de Orientação a objeto. Colocando a double saldo da classe conta com visualização private, não consigo mais definir um saldo inicial "puro" no meu main (sem as modificações de depósito, transferência e afins). Dá erro no meu código e já tentei de tudo para arrumar. Como o private impede a alteração de informações da variável no main, como eu poderia inicializar esse saldo?

Meu código:

Classe conta:

public class Conta { int numero; Pessoa titular; private double saldo; int agencia;

void deposita (double valorASerDepositado){ this.saldo+= valorASerDepositado; } void saca (double valorASerSacado){ if(this.saldo >= valorASerSacado) this.saldo-= valorASerSacado; }

void transferencia (double valor, Conta destino){ this.saldo-=valor; destino.saldo+=valor; }

public double getSaldo(){ return this.saldo; } }

Main: (o saldo inicial está comentando)

public static void main(String[] args) {

Conta mauricio= new Conta(); mauricio.numero= 123;

//mauricio.saldo= 800.0; saldo inicial mauricio impossível de definir porque saldo está protegido como private

mauricio.agencia= 842;

mauricio.deposita(500.0); mauricio.saca(200);

mauricio.titular= new Pessoa(); mauricio.titular.nome= "Mauricio Fulano"; mauricio.titular.cpf= "5558778-96";

Conta guilherme= new Conta(); guilherme.numero= 456;

// guilherme.saldo= 1200.0; saldo inicial guilherme impossível de definir porque saldo está protegido como private

guilherme.deposita(1000.0); guilherme.saca(300.0);

guilherme.titular= new Pessoa(); guilherme.titular.nome= "Guilherme Passo"; guilherme.titular.cpf= "002557886-55";

mauricio.transferencia(100.0, guilherme);

System.out.println(mauricio.getSaldo()); System.out.println(guilherme.getSaldo()); }

}

2 respostas

Instancie sua classe "Conta" já passando o saldo da conta através do construtor. Ficará assim:

public class Conta { int numero; Pessoa titular; private double saldo; int agencia;

public Conta(double saldo){ this.saldo = saldo; } }

instanciando a classe:

var novaConta = new Conta(1500);

Deu certinho, muito obrigada :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software