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

Criando a classe TestaOrdenacao

Prezados,

Estou com duvida nesse exercicio.

Criando a classe TestaOrdenacao

Crie uma classe TestaOrdenacao, onde você vai instanciar diversas contas e adicioná-las à uma List. Use o Collections.sort() nessa lista.

Depois compare com a solução do instrutor.

package br.com.empresa.banco;
import java.util.ArrayList;
import java.util.List;

import br.com.empresa.banco.conta.ContaPoupanca;

public class TestaOrdenacao {

    public static void main(String[] args) {
        List<ContaPoupanca> contas = new ArrayList<ContaPoupanca>();

        ContaPoupanca c1 = new ContaPoupanca(400, "Caio");
        c1.deposita(1500.0);
        contas.add(c1);

        ContaPoupanca c2 = new ContaPoupanca(467, "Adriano");
        c2.deposita(2050.99);
        contas.add(c2);

        ContaPoupanca c3 = new ContaPoupanca(230, "Victor");
        c3.deposita(1070.0);
        contas.add(c3);

        Collections.sort(contas);

        for (ContaPoupanca conta : contas) {
            System.out.println(conta);
        }
    }
}

Minhas duvidas são as seguintes:

1 - Por que no Construtor foi gerado o nome List no começo e não ArrayList? 2 - Construtores são aqueles que geram a variável por meio de parâmetros? ex: ContaPoupanca c1 = new ContaPoupanca(400, "Caio"); c1.deposita(1500.0); contas.add(c1); 3 - Por que do nada foi criado um Collections.sort com parâmetro contas? sem a criação de um construtor?

4 - O que significa esse "for" nessa Classe? E esses ":"?

3 respostas

1- List é a interface, você ganha em polimorfismo. Você não fica preso ao ArrayList, você pode usar outras implementações de lista como o LinkedList.

2- Construtor é a parte do código que é chamada quando você dá new em um objeto, que serve para ajudar a construí-lo. Por padrão ele é vazio, ou seja, você não precisa passar nenhum parâmetro nem especificar na classe. Mas você pode criar construtores para já atribuir valores aos atributos da classe, como é o exemplo citado: você já cria um objeto passando os valores 400 e Caio que o objeto já pode usar como quiser, normalmente atribuindo aos atributos, ou seja, nesse caso começando com saldo 400 e nome Caio.

3- Você pode chamar métodos estáticos sem ter que instanciar um objeto. No caso sorté um método estático do objeto Collections.

4- É uma estrutura de repetição. Sugiro que consulte cursos anteriores de Java que explicam esta e outras estruturas de repetição: https://cursos.alura.com.br/course/primeiros-passos-com-java

Antes de realizar essas perguntas, eu conferi nesse curso citado para ver se resolve minha duvida. Mas percebi que apesar de conferir ainda fiquei com essa duvida pois no curso apesar de cita-los não explica da forma que eu entenda infelizmente.

O que você quis dizer com estáticos e instanciar um objeto?

Muito obrigado pela resposta,

Atte.

Marcel Machado

solução!

Você instancia um objeto quando você dá o comando new. Instanciar um objeto é o ato de alocá-lo na memória.

Métodos estáticos são aqueles que são únicos da classe, ou seja, todos objetos criados vão compartilhar o mesmo método. Sendo assim não há necessidade de instanciar o objeto para usar este método.