Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Crie uma classe Contato que possui dois atributos: nome e email do tipo String. Crie outra classe, chamada Agenda, que possui um atributo contatos do tipo vetor de Contato - Exercícios Resolvidos de Java

Quantidade de visualizações: 34031 vezes
Exercício Resolvido de Java - Crie uma classe Contato que possui dois atributos: nome e email do tipo String. Crie outra classe, chamada Agenda, que possui um atributo contatos do tipo vetor de Contato

Pergunta/Tarefa:

Crie uma classe Contato que possui dois atributos: nome e email do tipo String. Crie outra classe, chamada Agenda, que possui um atributo contatos do tipo vetor de Contato. A classe Agenda deve conter um método para adicionar um novo contato em uma posição vazia do vetor, outro método para buscar um contato (retorna uma instância de Contato) através do nome e, por fim, um método para excluir um contato através do nome.

Veja um print deste exercício em execução:



Resposta/Solução:

A resolução deste exercício sobre Programação Orientada a Objetos em Java é um pouco mais demorada que as demais, pois temos que criar um menu de opções. Note que temos que informar também o tamanho do vetor de objetos da classe Contato, ou seja, a quantidade de contatos de poderão ser cadastrados na agenda.

Vamos começar com o código da classe Contato:

Código para a classe Contato.java:

----------------------------------------------------------------------
Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar)

Este código foi útil? Paga um cafezinho pra mim :-(
PIX: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package arquivodecodigos;

public class Contato {
  // atributos da classe Contato
  String nome;
  String email;  
}

Agora o código para a classe Agenda.java, que contém um vetor de objetos da classe Contato:

Código para Agenda.java:

----------------------------------------------------------------------
Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar)

Este código foi útil? Paga um cafezinho pra mim :-(
PIX: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package arquivodecodigos;

public class Agenda {
  // vetor de contatos
  int quantContatos = 2;
  Contato contatos[] = new Contato[quantContatos];

  public void adicionarNovoContato(Contato c){
    boolean sucesso = false; // a operação obteve sucesso?
    
    // procuramos uma posição vazia
    for(int i = 0; i < quantContatos; i++){
      if(contatos[i] == null){
        // encontramos uma posição vazia
        contatos[i] = c;
        sucesso = true;
        break;
      }
    }
    
    if(sucesso){
      System.out.println("\nContato cadastrado com sucesso.\n");
    }
    else{
      System.out.println("\nErro: Lista de contatos cheia.\n");
    }
  } 
  
  // permite que permite pesquisar e retornar um contato
  public Contato pesquisarContato(String nome){
    Contato contato = null;
    
    // varre o vetor de contatos
    for(int i = 0; i < contatos.length; i++){
      // o contato foi encontrado?
      if((contatos[i] != null) && (contatos[i].nome.equals(nome))){
        contato = contatos[i]; // retorna o contato
        break;
      }
    }
    
    return contato;
  }
  
  // permite que permite pesquisar e excluir um contato
  public void excluirContato(String nome){
    Contato contato = null;
    boolean excluido = false;
    
    // varre o vetor de contatos
    for(int i = 0; i < contatos.length; i++){
      // o contato foi encontrado?
      if((contatos[i] != null) && (contatos[i].nome.equals(nome))){
        contatos[i] = null; // exclui o contato
        System.out.println("\nContato excluído com sucesso.\n");
        excluido = true;
        break;
      }
    }
    
    if(!excluido){
      System.out.println("\nContato não encontrado.\n");
    }
  }
}

E aqui está o código completo para a classe principal, com comentários, que cria um objeto da classe Agenda e oferece o menu de opções para o gerenciamento dos contatos:

Código para Principal.java:

----------------------------------------------------------------------
Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar)

Este código foi útil? Paga um cafezinho pra mim :-(
PIX: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.Scanner;

public class Estudos{
  public static void main(String args[]){
    // vamos efetuar a leitura usando um objeto da
    // classe Scanner
    Scanner entrada = new Scanner(System.in);
    String nome, email; // dados temporários
    Contato c;
    
    // criamos um novo objeto da classe Agenda
    Agenda agenda = new Agenda();
    
    // um laço while infinito para exibir o menu
    while(true){
      System.out.println("1. Cadastrar Novo Contato");
      System.out.println("2. Pesquisar Contato");
      System.out.println("3. Excluir Contato");
      System.out.println("4. Sair");
      System.out.print("Sua opção: ");
      int opcao = Integer.parseInt(entrada.nextLine());
      
      switch(opcao){
        case 1: // cadastrar novo contato
          System.out.print("\nNome: ");
          nome = entrada.nextLine();
          System.out.print("E-Mail: ");
          email = entrada.nextLine();
          // cria um novo objeto da classe Contato
          c = new Contato();
          c.nome = nome;
          c.email = email;
          // e gravamos o novo contato
          agenda.adicionarNovoContato(c);
          break;
          
        case 2: // pesquisar um contato
          System.out.print("\nInforme o Nome: ");
          nome = entrada.nextLine();
          
          // pesquisa o contato
          c = agenda.pesquisarContato(nome);
          if(c == null){
            System.out.println("\nContato não encontrado.\n");
          }
          else{
            System.out.println("Contato encontrado:\nNome: " + c.nome +
              "; E-Mail: " + c.email + "\n");
          }
          
          break;
          
        case 3: // exclui um contato
          System.out.print("\nInforme o Nome: ");
          nome = entrada.nextLine();
          
          // exclui o contato
          agenda.excluirContato(nome);
          
          break;
          
        case 4: // fecha o programa
          System.exit(0);
      }
    }
  }
} 


Link para compartilhar na Internet ou com seus amigos:

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 20 usuários muito felizes estudando em nosso site.