Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Encapsulamento da classe Cliente

Eu também encapsulei a classe Cliente e ficou assim:

public class Cliente {
    private String nome;
    private String cpf;
    private String profissao;

    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 getProfissao() {
        return profissao;
    }

    public void setProfissao(String profissao) {
        this.profissao = profissao;
    }    
}

Na classe Conta privei o atributo titular e fiz os get e set dele

public Cliente getTitular() {
        return titular;
    }

    public void setTitular(Cliente titular) {
        this.titular = titular;
    }
public class TestaGetSet {
    public static void main(String[] args) {
        Conta conta = new Conta();

        conta.setAgencia(1200);
        conta.setNumero(2145742);
        conta.deposita(300);

        conta.setTitular(new Cliente()); 

        conta.getTitular().setNome("Fulano");
        conta.getTitular().setCpf("333.333.333-33");

        String nome = conta.getTitular().getNome();
        int numero = conta.getNumero();
        int agencia = conta.getAgencia();


        System.out.println( nome + " é titular da"
                + " conta " + numero + ",  agência nº " + agencia);
        System.out.println("Ele tem " + "R$" + conta.getSaldo() + " e "
                + "o seu CPF é " + conta.getTitular().getCpf());
    }
}

*Gostaria de saber se a forma que escrevi o código na classe TestaGetSet está bom ou teria um jeito melhor de fazer *

2 respostas

O Paulo fala sobre isso na outra aula, mas ainda gostaria de saber se tem um jeito melhor de escrever esse código

solução!

Olá, Daniel! Tudo certo? Acho que, com relação ao encapsulamento, seu código está bem escrito sim: com os atributos privados e utilizando getters e setters para trabalhar com eles. Uma única coisa que eu acredito que economizaria algumas linhas de código seria utilizar um método construtor. O Paulo vai falar mais sobre isso na próxima aula, mas dando um spoiler, com o construtor você não precisaria dessas linhas na classe TestaGetSet:

    Conta conta = new Conta();

     conta.setAgencia(1200);
     conta.setNumero(2145742);
     conta.deposita(300);
Bastaria criar um construtor na classe Conta:
public Conta( double  saldo, int agencia, int numero){
    this.saldo = saldo;
    this.agencia = agencia;
    this.numero = numero;
}
E, na classe TestaGetSet, chamar esse construtor e já criar um objeto com aqueles valores que você tinha usado nos setters:
Conta conta = new Conta(300, 2145742, 300);

Espero ter contribuído um pouquinho! Caso algo não tenha ficado claro, dá uma olhada na próxima aula que comentei e fique à vontade para postar as dúvidas aqui no fórum!

Abraços e bons estudos!