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

Resolvendo o Problema de Tratamento de Impressão: toSrting().

Segue o código:

package Classes;

public class Conta {

    protected String nome;

    public String getNome() {
        return this.nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    protected double saldo;

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

    protected String agencia;


    public String getAgencia() {
        return this.agencia;
    }

    public void setAgencia(String agencia) {
        this.agencia = agencia;
    }

    protected int numero;

    public int getNumero() {
        return numero;
    }

    /**
     * Metodo para deposito;
     * @param valor será usado como somatorio para o deposito;
     */
    public void deposita(double valor) {
        this.saldo += valor;
    }

    /**
     * Metodo construtor;
     * @param valor para setar saldo;
     * @param texto para setar nome;
     */
    public Conta(double valor, String texto, String txt) {
        this.saldo = valor;
        this.nome = texto;
        this.agencia = txt;
    }

    /**
     * Tratamento da classe String;
     * Subiscrevendo a String toString() para tratamento de saida;
     * Obrigatoriamente tem que receber um return;
     */
    public String toString() {
        return "A conta de: " + this.getNome() + " De Agência: " + this.getAgencia() + " Tem saldo de: " + this.getSaldo();
    }
}


package Classes;

public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca>{

    /**
     * Construtor Herdado de Conta;
     * @param valor
     * @param texto
     */
    public ContaPoupanca(double valor, String texto, String txt) {
        super(valor, texto, txt);
    }

    /**
     * Metodo para poder fazer a comparação das Contas Poupança;
     * Se meu saldo for menor que o outro retorne -1;
     * Se meu saldo for maior que o outro retorne +1;
     * Quando o meu saldo comparado com o outro for -1 o meu saldo aparece antes na lista;
     * Quando o meu saldo comparado com o outro for +1 o meu saldo aparece depois na lista;
     * Assim com a comparação quando eu for imprimir, por ex, os saldos serão impressos em ordem crescente;
     */
    @Override
    public int compareTo(ContaPoupanca outra) {
        if(this.saldo < outra.saldo) return -1;
        if(this.saldo > outra.saldo) return 1;
        return 0;
    }    
}


package Testes;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import Classes.ContaPoupanca;

public class TestaOrdenacao {

    public static void main(String[] args) {

        /**
         * Criando um novo array e obrigando somente objetos tipo ContaPoupanca a entrar nele;
         * Setando esse array em um List contas;
         */
        List<ContaPoupanca> contas = new ArrayList<ContaPoupanca>();

        /**
         * Criando uma nova conta c1;
         * Fazendo um deposito em c1;
         * Adicionando c1 na lista contas;
         */
        ContaPoupanca c1 = new ContaPoupanca(400, "Caio", "abc123");
        c1.deposita(1500.0);
        contas.add(c1);

        /**
         * Criando uma nova conta c2;
         * Fazendo um deposito em c2;
         * Adicionando c2 na lista contas;
         */
        ContaPoupanca c2 = new ContaPoupanca(467, "Adriano", "abc123");
        c2.deposita(2050.99);
        contas.add(c2);

        /**
         * Criando uma nova conta c3;
         * Fazendo um deposito em c3;
         * Adicionando c3 na lista contas;
         */
        ContaPoupanca c3 = new ContaPoupanca(230, "Victor", "abc123");
        c3.deposita(1070.0);
        contas.add(c3);
/**
         * Usando o Collections.sort() para colocar a lista contas em ordem alfabetica;
         */
        Collections.sort(contas);

        /**
         * Usando o foreach para passa do 1º elemento ao ultimo na lista contas;
         * dai ir imprimindo um por um;
         * Para cada String conta dentro de contas imprima;
         */
        for (ContaPoupanca conta : contas) {
            System.out.println(conta);
        }
    }
}
3 respostas

Boa noite, Pablo! Como vai?

Eu não entendi mto bem, vc tem alguma dúvida em relação ao código?

solução!

Olá Gabriel, só estou compartilhando o código...

Ah sim, blz então!

Grande abraço e bons estudos, Pablo!

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