Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

Controlar tarefas



public class Tarefas {
    String descricao;
    boolean concluida;

    void exibir() {
        if (concluida) {
            System.out.println("Tarefa: " + descricao + " - Status: Concluída");
        } else {
            System.out.println("Tarefa: " + descricao + " - Status: Pendente");
        }
    }
}



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

public class ControladorDeTarefas {
    static void main(String[] args) {
        Tarefas tarefa1 = new Tarefas();
        tarefa1.descricao = "Estudar Java";
        tarefa1.concluida = false;

        Tarefas tarefa2 = new Tarefas();
        ttarefa2.descricao = "Fazer exercícios";
        tarefa2.concluida = true;

        List<Tarefas> lista = new ArrayList<>();
        lista.add(tarefa1);
        lista.add(tarefa2);

        for (Tarefas t : lista) {
            t.exibir();
        }
    }
}

1 resposta
solução!

Olá, Otavio! Tudo bem?

Que ótimo ver você praticando o controle de tarefas em Java com orientação a objetos. A forma como você estruturou a classe Tarefas, com os atributos descricao e concluida, e utilizou o método exibir para mostrar o status de cada tarefa, demonstra uma boa compreensão dos conceitos fundamentais. O uso de uma List com ArrayList para armazenar os objetos tarefa1 e tarefa2 também é uma escolha muito adequada para esse tipo de situação.

Dito isso, há dois pontos importantes para corrigir no seu código:

O primeiro é a assinatura do método principal. Em Java, ele deve ser declarado como public static void main(String[] args). Sem o modificador public static, o programa não consegue ser executado corretamente pela JVM.

O segundo é um erro de digitação na linha ttarefa2.descricao, que possui uma letra "t" a mais. O correto é tarefa2.descricao, sem a duplicação.

Uma sugestão valiosa para evoluir ainda mais é utilizar um construtor na classe Tarefas. Dessa forma, você inicializa os atributos no momento em que o objeto é criado com new, tornando o código mais limpo e organizado. Veja o exemplo:


public Tarefas(String descricao, boolean concluida) {
    this.descricao = descricao;
    this.concluida = concluida;
}

Com esse construtor, ao criar tarefa1 e tarefa2 você já passa os valores diretamente, eliminando as atribuições separadas e deixando o System.out.println do método exibir exibir os resultados de forma muito mais fluida.

Você já chegou a explorar o uso de construtores em outras classes que desenvolveu?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!