Java Orientado A Objetos Como Criar Uma Agenda em Java
Java Orientado A Objetos Como Criar Uma Agenda em Java
Buscar
Artigo
objetos.
Artigos
Java
16
1 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
Fique por dentro de tudo que acontece sobre Java na DevMedia e também con�ra o
16
2 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
Por �m, temos a classe Telefone que contém campos que discriminam o contato
telefônico do usuário e contém o método para obtenção dos dados. Essa classe
será enunciada apenas na classe Principal (Main) e na classe ContatoBasico.
Iniciando o Projeto
Inicialmente, será criada uma nova aplicação Java, isso após ter aberto o ambiente
de desenvolvimento Netbeans. No menu principal, vá em Arquivo e selecione a
opção Java -> Aplicação Java, como mostra a Figura 2.
16
3 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
Após isso, é só clicar no botão: Próximo. Então aparecerá a seguinte tela, como
mostra a Figura 3.
16
4 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
Nota: Nesse caso, foi necessário mudar o nome da Classe Principal para Main.
Após ter clicado no botão Finalizar, aparecerá a classe principal Main e com isso
já é possível criar as classes adicionais para dentro do projeto. As classes �carão
todas na mesma raiz e terão os seguintes nomes: Agenda.java, Contato.java,
ContatoBasico.java, ContatoComercial.java, EContato.java e Telefone.java, que
podem ser visualizadas de acordo com a Figura 4.
16
5 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
Implementando o Projeto
1 packageappagenda;
2 public class Telefone
3 { private String numero;
4 private String tipo;
5 publicTelefone(String numero, String tipo)
6 { this.numero = numero;
7 this.tipo = tipo;
8 }
9 public String getTelefone()
10 { return numero+" "+tipo;
11 }
12 }
Vamos entender o código acima: na classe Telefone são criados dois campos:
nome e telefone. Ambos são do tipo String e de visibilidade private. Em seguida é
criado o construtor Telefone (String numero, String tipo) que será responsável por
apontar a nova criação dos objetos. Finalmente, é criado o método getTelefone()
do tipo String que retornará os valores dos dois campos concatenados.
16
6 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
1 Package appagenda;
2
3 import java.util.ArrayList;
4
5 abstract public class ContatoBasico
6 { protected String nome;
7 Protected ArrayList<Telefone>telefones;
8 public ContatoBasico()
9 { nome="";
10 telefones=new ArrayList();
11 }
12 public ContatoBasico(String nome)
13 { this.nome = nome;
14 telefones=new ArrayList();
15 }
16 public String getNome() { return nome; }
17 public void setNome(String nome) { this.nome = nome;}
18 public void setTelefone(Telefonetf)
19 { telefones.add(tf);
20 }
21 public String getDados()
22 { String s=nome+"\n";
23 for(Telefone t:telefones)
24 { s+=t.getTelefone()+"\n";
25 }
26 return s;
27 }
28 }
Esse código contém uma classe que é abstrata, na qual ela é impedida de ser
instanciada, mas dá mais consistência ao sistema e tem a função de servir como
herança de atributos e métodos, que serão recursos fundamentais no decorrer do
projeto.
16
7 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
Logo em seguida são criados os campos nome (do tipo String) e telefones (do tipo
ArrayList -isso é uma referência para a classe Telefone) e ambos com visibilidade
protected.
Por �m, o método getDados() é do tipo String e contém uma String que recebe o
nome e o telefone do respectivo contato e faz o retorno dessa variável.
1 16
8 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
}
}
Após, é inserido o código extends ContatoBasico, que signi�ca uma herança para
a classe ContatoBasico, onde as informações servirão para a classe Contato.
16
9 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
1 Package appagenda;
2
3 public class ContatoComercial extends ContatoBasico
4 {
5 protected String atividade;
6 protected String funcionario;
7
8 publicContatoComercial(String nome, String atividade, String funcionario
9 16
10
10 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
Logo após são criados dois campos: um com o nome atividade e do tipo String, e
outro com o nome funcionário e do tipo String, ambos com visibilidade protected.
11 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
1 Package appagenda;
2 import java.util.Calendar;
3
4 public class EContato extends Contato
5 { protected String email,homepage;
6 public EContato(String nome, Calendar dtnasc, String email, String
7 { super(nome,dtnasc);
8 this.email=email;
9 homepage=hp;
10 }
11 @Override
12 public String getDados() {
13 return super.getDados()+"email: "+email+"\nhomepage:"+homepage
14 }
15 public String getEmail() {
16 return email;
17 }
18 public String getHomepage() {
19 return homepage;
20 }
21 }
Logo depois são criados dois campos: um com o nome email e outro com o nome
homepage, ambos do tipo String e de visibilidade protected.
12 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
1 Package appagenda;
2
3 Import java.util.ArrayList;
4
5 public class Agenda
6 { private ArrayList<ContatoBasico>contatos;
7 Agenda()
8 { contatos=new ArrayList();
9 }
10 public void inserir(ContatoBasico c)
11 { contatos.add(c);
12 }
13 Public ContatoBasicobuscar(String nome)
14 { for(int i=0;i<contatos.size();i++)
15 { ContatoBasico c=contatos.get(i);
16 if(c.getNome().equalsIgnoreCase(nome))
17 16
18
13 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
{ if(pos>=0 &&pos<contatos.size())
{ returncontatos.get(pos);
}
return null;
}
Public EContatobuscarEmail(String email)
{ for(int i=0;i<contatos.size();i++)
{ if(contatos.get(i) instanceofEContato)
{
EContato c=(EContato)contatos.get(i);
if(c.getEmail().equalsIgnoreCase(email))
return (EContato)contatos.get(i);
}
}
return null;
}
Public Contato[] buscarGeral(String palavraChave)
{ ArrayList<ContatoBasico>todos=new ArrayList();
for(int i=0;i<contatos.size();i++)
{ ContatoBasico c=contatos.get(i);
if(c.getDados().contains(palavraChave))
todos.add(c);
}
Contato[] vet=new Contato[todos.size()];
return (todos.toArray(vet));
}
Public Contato[] buscarTodos()
{ Contato[] vet=new Contato[contatos.size()];
return (contatos.toArray(vet));
}
Public intgetQuantidade()
{ returncontatos.size();
}
16
14 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
15 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
Agora vamos escrever a nossa classe principal, a classe Main, que é implementada
de acordo com a Listagem 7.
1 Package appagenda;
2
3 Import java.util.GregorianCalendar;
4
5 public class Main
6 { static void mostraDados(ContatoBasicoobj)
7 { System.out.println(obj.getDados());
8 if(objinstanceofContato)
9 System.out.println(((Contato)obj).getIdade());
10 System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxx");
11 }
12 public static void main(String[] args)
13 { Agenda a;
14 a=new Agenda();
15
16 Contato cb;
17 cb=new Contato("Teste",newGregorianCalendar(1980,10,28));
18 cb.setTelefone(new Telefone("3333-5555","Telefone residencial"
19 cb.setTelefone(new Telefone("99111-1111","Telefone celular"
20 16
21
16 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
a.inserir(cc);
a.inserir(new EContato("Exemplo",newGregorianCalendar(1975
"[email protected]","www.exemplo.com.br"));
if(obj!=null)
mostraDados(obj);
elseSystem.out.println("Contato nao encontrado!");
}
}
Se o objeto obj for diferente de null, quer dizer que retornou resultados,
16
17 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
Tecnologias:
18 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
BENEFÍCIOS
Certi�cado de autoridade
Estudo gami�cado
Saiba mais
Por Igor
Em 2014
16
19 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
16
20 of 21 04/06/2021 15:01
Java Orientado a Objetos: Como criar uma Agenda em Java https://www.devmedia.com.br/java-orientado-a-objetos-como-criar-uma-...
Exercicios
Cursos
Artigos
Revistas
Fale conosco
Assine agora
16
21 of 21 04/06/2021 15:01