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 JavaQuantidade de visualizações: 33907 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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: |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como excluir uma substring de uma string usando o método delete() da classe StringBuffer do Java - RevisadoQuantidade de visualizações: 92 vezes |
Em algumas situações nós gostaríamos de excluir parte de uma palavra ou texto, ou seja, remover uma substring de uma string. Para isso nós podemos usar o método delete() da classe StringBuffer da linguagem Java. Lembrando que a classe StringBuffer, do pacote java.lang, é usada em vez da classe String quando precisamos fazer muitas concatenações e adições ou remoções no conteúdo da string. Veja um exemplo de código no qual removemos parte do conteúdo de um StringBuffer: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String[] args){ StringBuffer frase = new StringBuffer("Gosto muito de Java"); // mostra o conteúdo original System.out.println("Frase original: " + frase); String remover = "muito "; // vamos obter o índice inicial do conteúdo a ser removido int pos = frase.indexOf(remover); // e agora vamos remover frase.delete(pos, pos + remover.length()); // com a remoção System.out.println("Depois da remoção: " + frase); System.exit(0); } } Após a execução deste código nós teremos o seguinte resultado: Frase original: Gosto muito de Java Depois da remoção: Gosto de Java |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Manipulação de texto em Java - Como contar as ocorrências de um caractere em uma stringQuantidade de visualizações: 38 vezes |
Nesta dica mostrarei como podemos combinar um laço for e o método charAt() da classe String para contar as ocorrências de um caractere (uma letra) em uma palavra, frase ou texto. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String[] args){ String frase = "Programar em Java é muito bom"; System.out.println("Frase: " + frase); int cont = 0; char letra = 'a'; // ocorrências da letra "a" for(int i = 0; i < frase.length(); i++){ if(frase.charAt(i) == letra){ cont++; } } System.out.println("A frase contem " + cont + " ocorrencias da letra \"" + letra + "\""); System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Frase: Programar em Java é muito bom A frase contém 4 ocorrências da letra "a" |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Saiba o que é Reflexão (Reflection) em Java - Como usar Reflexão (Reflection) na linguagem Java - RevisadoQuantidade de visualizações: 18274 vezes |
Reflection (ou Reflexão), também conhecida como RTI (Runtime Type Information) em algumas linguagens, é um mecanismo para descobrir dados a respeito de um programa em tempo de execução. Reflection em Java nos permite descobrir informações sobre atributos ou membros (campos), métodos e construtores de classes. Podemos também operar nos campos e métodos que descobrimos. A Reflection permite o que é normalmente chamada de programação dinâmica em Java. A Reflection em Java é conseguida usando a Java Reflection API. Esta API consiste de classes nos pacotes java.lang e java.lang.reflect. Antes de prosseguirmos, veja um exemplo de como podemos listar todos os métodos públicos da classe Object: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.lang.reflect.*; public class Estudos{ public static void main(String args[]){ // vamos carregar a classe Object try{ Class c = Class.forName("java.lang.Object"); // obtém os nomes dos métodos Method[] metodos = c.getMethods(); // exibe o nome de cada método for(int i = 0; i < metodos.length; i++){ System.out.println(metodos[i].getName()); } } catch(ClassNotFoundException e){ System.out.println(e.getMessage()); } System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: wait wait wait equals toString hashCode getClass notify notifyAll Eis uma lista das coisas que podemos fazer com a Java Reflection API: 1) Determinar a classe de um objeto; 2) Obter informações sobre os modificadores, campos (atributos), métodos, construtores e superclasses de uma classe; 3) Descobrir quais constantes e declarações de métodos pertencem a uma interface; 4) Criar uma instância de uma classe cujo nome não sabemos até o tempo de execução; 5) Obter e definir o valor do campo de um objeto; 6) Invocar um método em um objeto; 7) Criar um novo array, cujo tamanho e tipo de dados só saberemos em tempo de execução. A Java Reflection API é geralmente usada para criar ferramentas de desenvolvimento tais como debuggers, class browsers e construtores de GUI. Geralmente, neste tipo de ferramentas, precisamos interagir como classes, objetos, métodos e campos, e não sabemos quais em tempo de compilação. Assim, a aplicação deve, dinamicamente, encontrar e acessar estes itens. Esta dica foi revisada e testada no Java 8. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Delphi - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em Delphi |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |