Bem pessoal, sou novo aqui e espero que alguem me ajude. Tenho esse trabalho pra fazer.
Um serviço de envio de mensagens funciona com telegramas e e-mail. Todas as mensagens tem o nome do remetente, nome do destinatario e texto. Os telegramas possuem os seguintes dados do endereço de destino: nome da rua, número, bairro, cidade e estado. Já os e-mails possuem nome do usuário e domínio de Internet (ex. gmail.com).
Modele e implemente estas classes usando herança.
Construa uma classe Correio, onde o usuário cria telegramas e e-mails que ficam armazenados em um vetor.
A classe correio deve oferecer a funcionalidade de imprimir na tela a relação de mensagens a serem enviadas. Para telegramas o endereço é a concatenação dos dados do endereço de destino. Já para os e-mails o endereço de destino é formado pelo nome do usuário concatenado com um arroba (@) concatenado com o domínio de Internet.
Ja fiz grande parte dele, mas nao estou conseguindo terminar. Minha dúvida esta na Classe teste…como vou chamar o metodo “send()” da classe correio???
//***Classe Mensagens.
public class Mensagens {
private String nomeDestinatario;
private String nomeRemetente;
private String texto;
//***contrutor com parametros.
public Mensagens(String nomeDestinatario, String nomeRemetente, String texto){
this.nomeDestinatario = nomeDestinatario;
this.nomeRemetente = nomeRemetente;
this.texto = texto;
}
//***getters e setters
public String getNomeDestinatario() {
return nomeDestinatario;
}
public void setNomeDestinatario(String nomeDestinatario) {
this.nomeDestinatario = nomeDestinatario;
}
public String getNomeRemetente() {
return nomeRemetente;
}
public void setNomeRemetente(String nomeRemetente) {
this.nomeRemetente = nomeRemetente;
}
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
//***metodo para imprimir os dados
public String TodosDados(){
return "\nRemetente: " + nomeRemetente + "\nDestinatário: " + nomeDestinatario +
"\nTexto: " + texto;
}
}
//***Classe E-mail extends Mensagens
public class E_mail extends Mensagens {
private String usuario;
private String dominio;
//***construtor com parametros
public E_mail(String nomeDestinatario, String nomeRemetente,
String texto, String usuario, String dominio){
super(nomeDestinatario, nomeRemetente, texto);
this.usuario = usuario;
this.dominio = dominio;
}
//***getters e setters
public String getDominio() {
return dominio;
}
public void setDominio(String dominio) {
this.dominio = dominio;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
// ***metodo para imprimir os dados
public String TodosDados(){
return "\nRemetente: " + getNomeRemetente()+ "\nDestinatário: " +
getNomeDestinatario() + "\nE-mail: " + usuario + "@" + dominio + "\nTexto: " +
getTexto();
}
}
//***Classe Telegrama extends Mensagens
public class Telegrama extends Mensagens{
private String rua;
private int numero;
private String bairro;
private String cidade;
private double cep;
//***contrutor com parametros
public Telegrama(String nomeDestinatario, String nomeRemetente,
String texto, String rua, int numero, String bairro, String cidade,
double cep){
super(nomeDestinatario, nomeRemetente, texto);
this.rua = rua;
this.numero = numero;
this.bairro = bairro;
this.cidade = cidade;
this.cep = cep;
}
//***getters e setters
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public double getCep() {
return cep;
}
public void setCep(double cep) {
this.cep = cep;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public String getRua() {
return rua;
}
public void setRua(String rua) {
this.rua = rua;
}
// ***metodo para imprimir os dados
public String TodosDados(){
return "\nRemetente: " + getNomeRemetente()+ "\nDestinatário: " +
getNomeDestinatario() + "\nRua: " + rua + " N.: " + numero + "\nBairro: " +
bairro + "\nCidade: " + cidade + "\nCEP: " + cep + "\nTexto: " + getTexto();
}
}
//***Classe correio
public class Correio {
private Mensagens[] vetMensagens;
public Correio(){
vetMensagens = new Mensagens[0];
}
//***metodo de envio das mensagens
public void send(Mensagens novo){
Mensagens[] aux = new Mensagens[vetMensagens.length+1];
int i;
for(i=0 ; i<vetMensagens.length ; i++)
aux[i] = vetMensagens[i];
aux[i] = novo;
vetMensagens = aux;
}
//***metodo que ira listar as mensagens enviadas
public void listaMensagens(){
for(int i=0 ; i<vetMensagens.length ; i++){
System.out.print(vetMensagens[i].TodosDados());
}
}
}
import java.io.*;
public class testeMensagens {
public static void main(String[] args)throws IOException{
BufferedReader leitor = new BufferedReader(new InputStreamReader(System.in));
int op, numero;
double cep;
Mensagens msgs;
Correio correio;
String remetente,destinatario, texto, usuario, dominio,
rua, bairro, cidade;
do{
System.out.print("Menu");
System.out.print("\n\n1 - E-mail");
System.out.print("\n2 - Telegrama");
System.out.print("\n3 - Listar Mensagens Enviadas");
System.out.print("\n4 - Sair");
System.out.print("Opção: ");
op = Integer.parseInt(leitor.readLine());
switch(op){
case 1:
System.out.print("Remetente: ");
remetente = leitor.readLine();
System.out.print("\nDestinatario: ");
destinatario = leitor.readLine();
System.out.print("Usuario: ");
usuario = leitor.readLine();
System.out.print("Dominio: ");
dominio = leitor.readLine();
System.out.print("\nTexto: ");
texto = leitor.readLine();
msgs = new E_mail(destinatario,remetente,texto,usuario,dominio);
Correio.send(msgs);//como vou fazer pra chamar o metodo send????
break;
case 2:
System.out.print("Remetente: ");
remetente = leitor.readLine();
System.out.print("\nDestinatario: ");
destinatario = leitor.readLine();
System.out.print("\nRua: ");
rua = leitor.readLine();
System.out.print(" Num.: ");
numero = Integer.parseInt(leitor.readLine());
System.out.print("\nBairro: ");
bairro = leitor.readLine();
System.out.print("\nCidade: ");
cidade = leitor.readLine();
System.out.print("\nCep.: ");
cep = Double.parseDouble(leitor.readLine());
System.out.print("\nTexto: ");
texto = leitor.readLine();
msgs = new Telegrama(destinatario,remetente,texto,rua,numero,bairro,cidade,cep);
Correio.send(msgs);
break;
case 3:
cr.listaMensagens();
break;
}
}while(op != 4);
}
}