no me explicao nada bien, era para introducir por teclado el contenido del mensaje para pasarlo al objeto a introducir en el array, eso ya lo e averiguado, aora estoy con java, concretamente con el ejercicio de los buzones, el enunciado es este, mas o menos lo tengo echo, funciona casi todo pero a la hora de comprobar si el array esta lleno y mostrar un mensaje, me sigue pidiendo los datos y me da error que me e salido del array, os dejo el enunciao y mi codigo.
Define la clase Buzon para gestionar un buzón de correos electrónicos ordenados según el orden de llegada. Para representar el buzón se usa un array de correos electrónicos; estos, a su vez, son objetos de la clase Correo y tienen como atributos un String, con el contenido del correo, y un indicativo para saber si han sido leídos o no. Define la clase Correo con los métodos que creas convenientes, sabiendo que la clase Buzon debe incluir los siguientes métodos públicos:
int numeroDeCorreos(), que calcula cuántos correos hay en el buzón
void añade(Correo c), que añade c al buzon
boolean porLeer(), que determina si quedan correos por leer
String muestraPrimerNoLeido(), que muestra el primer correo no leído
String muestra(int k), que muestra el correo k-ésimo, se haya leído o no
void elimina(int k), que elimina el correo k-ésimo.
Debes crear una clase ejecutable que pruebe la clase Buzon, creando varios objetos y comprobando de manera explícita que funciona de forma correcta en todas las posibles situaciones.
CLASE MAIN
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
menuaplicacion();
}
public static void menuaplicacion() throws IOException{
Buzon buzon = new Buzon();
String contenido="", cont="";
int opcion, numcorreo;
BufferedReader Entrada = new BufferedReader(new InputStreamReader(System.in));
do{
opcion=Integer.parseInt(JOptionPane.showInputDialog( "1-Numero total de correos" +
"\n2-Añadir correo" +
"\n3-Mostrar si queda algun correo por leer " +
"\n4-Mostrar el primer correo no leido " +
"\n5-Mostrar el correo deseado "+
"\n6-Eliminar correo deseado " +
"\n\n-Elige una opcion"));
if(opcion==1){
JOptionPane.showMessageDialog(null, "Numero de correos que hay en el buzon: " + buzon.numeroDeCorreos());
}
else if(opcion==2){
do{
contenido=JOptionPane.showInputDialog("Introduce contenido del mensaje: ");
cont = JOptionPane.showInputDialog(null,"¿Continuar introduciendo correos? S/N");
Correo correo = new Correo(contenido);
buzon.añadeCorreo(correo);
}while("s".equals(cont) || "S".equals(cont));
}else if(opcion==3){
JOptionPane.showMessageDialog(null, "Quedan correos por leer" + buzon.porLeer());
}
else if(opcion==4){
JOptionPane.showMessageDialog(null, buzon.muestraPrimerNoLeido());
}
else if(opcion==5){
numcorreo=Integer.parseInt(JOptionPane.showInputDialog("Introduce el numero de correo a visualizar: "));
JOptionPane.showMessageDialog(null, "el contenido del mensaje es:" + buzon.muestra(numcorreo));
}
else if(opcion==6){
numcorreo=Integer.parseInt(JOptionPane.showInputDialog("Introduce el numero de correo a eliminar: "));
buzon.elimina(numcorreo);
JOptionPane.showMessageDialog(null, "Correo borrado");
}
}while(opcion<7);
}
}
CLASE CORREO
public class Correo {
private String contenido;
private boolean leido=false;
public Correo(String contenido){
this.contenido=contenido;
this.leido=false;
}
public String getContenido(){
return this.contenido;
}
public boolean getLeido(){
return this.leido;
}
public void setContenido(String contenido){
this.contenido=contenido;
}
public void setLeido(boolean leido){
this.leido=leido;
}
}
CLASE BUZON
public class Buzon {
Correo[] array = new Correo[1];
private int cont;
public Buzon(){
this.cont=0;
}
public int numeroDeCorreos(){
return cont;
}
public void añadeCorreo(Correo c){
array[cont]=c;
cont++;
}
public boolean porLeer(){
for(int i=0; i<cont; i++){
if(array[i].getLeido()==false){
return true;
}
}
return false;
}
public String muestraPrimerNoLeido(){
for(int i=0; i<cont; i++){
if(array[i].getLeido()==false){
array[i].setLeido(true);
return array[i].getContenido();
}
}
return "Todos estan leidos";
}
public String muestra (int k){
array[k].setLeido(true);
return array[k].getContenido();
}
public void elimina(int k){
array[k]=null;
cont--;
}
}