Olá, eu comecei recentemente neste mundo do desenvolvimento e estou estudando orientação a objetos, porém não consigo acessar alguns dados encapsulados, então eu não consigo adivinhar se é a lógica errada ou falta algum comando que eu ainda não sei. Aqui vai meu código sobre um banco que estou tentando criar:
==========classe Conta===========
import java.util.ArrayList;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Conta {
//Declaração das variáveis
SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date d = new Date();
private int agencia;
private int numero;
private float saldo;
private float limite;
private ArrayList<Pessoa> titular;
private StringBuilder log;
//Construtores
public Conta(){
this.agencia=0;
this.numero=0;
this.saldo=0f;
this.limite=0f;
this.titular = new ArrayList<>();
this.titular.add(new Pessoa());
log=new StringBuilder();
}
public Conta(int agencia, int numero, float saldo, float limite, String nome, String telefone, String cpf, String endereco) {
this.agencia = agencia;
this.numero = numero;
this.saldo = saldo;
this.limite = limite;
this.titular = new ArrayList<>();
this.titular.add(new Pessoa(nome,telefone,cpf,endereco));
}
public Conta(int agencia, int numero, String nome){
this.agencia = agencia;
this.numero = numero;
this.titular = new ArrayList();
this.titular.add(new Pessoa(nome));
}
//Getters e setters
public int getAgencia() {
return agencia;
}
public void setAgencia(int agencia) {
this.agencia = agencia;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public float getSaldo() {
return saldo;
}
public void setSaldo(float saldo) {
this.saldo = saldo;
}
public float getLimite() {
return limite;
}
public void setLimite(float limite) {
this.limite = limite;
}
public ArrayList<Pessoa> getTitular() {
return titular;
}
public void setTitular(ArrayList<Pessoa> titular) {
this.titular = titular;
}
public StringBuilder getLog() {
return log;
}
public void setLog(StringBuilder log) {
this.log = log;
}
//========Operacoes========
public boolean deposito(String matricula,float valor){
float total, atual = this.getSaldo();
total = atual + valor;
this.setSaldo(total);
this.extrato(matricula,this.getTitular().getCpf(),"Depósito", "ok", valor, this.getNumero());
return true;
}
public boolean saque(String matricula,float valor){
if((this.getSaldo() + this.getLimite())- valor > 0){
float atual = this.getSaldo();
this.setSaldo(atual - valor);
this.extrato(matricula,this.getTitular().getCpf(),"Saque","ok",valor,this.getNumero());
return true;
}else{
this.extrato(matricula,this.getTitular().getCpf(),"Saque","Falha",valor,this.getNumero());
return false;
}
}
public boolean transfetencia(String matricula,float valor, Conta conta){
if((this.getSaldo() + this.getLimite())- valor > 0){
this.setSaldo(this.getSaldo() - valor);
conta.setSaldo(conta.getSaldo()+valor);
this.extrato(matricula,this.getTitular().getCpf,"Transferência efetuada","Ok",valor,conta.getNumero());
conta.extrato(matricula,conta.getTitular().getCpf(),"Transferência recebida","Ok",valor,this.getNumero());
return true;
}else{
this.extrato(matricula,this.getTitular().getCpf(),"Tranferencia","Falha",valor,conta.getNumero());
return false;
}
}
private boolean extrato(String matricula,String cpf,String operacao, String status, float valor,int numero ){
log.append("--").append(data.format(d) + " ").append(matricula).append(" ").append(cpf).append(" ").append(operacao + " ").append(status + " ").append(valor + " ").append(numero + "\n");
return true;
}
/*@Override
public String toString(){
return "==========\n"+"Agência: " + this.agencia + "\nConta Nº: " + this.numero + "\nSaldo: R$"+this.saldo+"\nLimite: R$"+this.limite+"\nTitular: "+this.titular.getNome()+"\nCPF: "+this.titular.getCpf()+"\n==========";
}*/
@Override
public String toString(){
return "Agência: " + this.agencia + " Conta Nº: " + this.numero;
}
}
=======classe Pessoa=======
public class Pessoa {
//Declarando as variáveis
protected String nome;
protected String cpf;
protected String endereco;
protected String telefone;
public Pessoa(){
nome = "";
endereco = "";
cpf = "";
telefone = "";
}
//Construtores
public Pessoa(String nome, String telefone, String cpf, String endereco){
this.nome = nome;
this.telefone = telefone;
this.cpf = cpf;
this.endereco = endereco;
}
public Pessoa(String nome){
this.nome = nome;
this.telefone = "";
this.cpf = "";
this.endereco = "";
}
//Getters e setters
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}
===========================
O problema em si está lá pela linha 80