Herencia java

Iniciado por Dayleap, 3 Abril 2017, 14:27 PM

0 Miembros y 1 Visitante están viendo este tema.

Dayleap

Hola muy buenas a todos!! tengo un problema en este programa que estoy realizando ahora mismo  el cual mediante la lectura de un fichero que contiene personas y sus datos, va a ordenarlas en función de si son monitores o usuarios en dos HashMaps diferentes ( Monitores y Usuarios). El problema está en que las clases monitores y usuarios heredan de la clase personas un identificador( idPersona) el nombre, los apellidos y la fecha de nacimiento. Esos 4 datos a la hora de imprimir los HashMap de Personas y Monitores me dice que son null y no deberia de ser asì , a parte cuando intento imprimir un hashmap con todas las personas , me dice la ruta donde se encuentra la clase personas . Os adjunto el codigo! muchas gracias!

MI PREGUNTA: ¿Porque cuando relleno el HashMap de Usuarios y Monitores , no me rellena los campos de  id nombre apellidos fecha de nacimiento? ¿ Porque cuando imprimo el hashmap de personas me imprime el paquete donde se encuentra ?
ejemplo:

{1=es.uvigo.pii.instalacionesdeportivas.main.Persona@6d06d69c, 2=es.uvigo.pii.instalacionesdeportivas.main.Persona@7852e922, 3=es.uvigo.pii.instalacionesdeportivas.main.Persona@15db9742}

Código (java) [Seleccionar]


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
import es.uvigo.pii.instalacionesdeportivas.main.Persona;

public class FicheroPersonas {

public static void main(String[] args) {

// TODO Auto-generated method stub

HashMap<Integer,Persona> Personas= new HashMap<Integer,Persona>();
HashMap<Integer,Usuario> Usuarios= new HashMap<Integer,Usuario>();
HashMap<Integer,Monitor> Monitores= new HashMap<Integer,Monitor>();

String[] datos=new String[10];
int i=0;
int idsOcupados=0;
FileReader fr = null;
BufferedReader br = null;
BufferedWriter bw;

String rutaPersonas = "personas.txt";
File personas = new File(rutaPersonas);

try {
// Apertura del fichero y creacion de BufferedReader para poder
// hacer una lectura comoda (disponer del metodo readLine()).

fr = new FileReader(personas);
br = new BufferedReader(fr);

// Lectura del fichero
String linea;
while ((linea = br.readLine()) != null) {

if(linea.startsWith("*")!=true){

datos[i]=linea; // guardo la linea
i++;

}


if(linea.startsWith("*")==true){

if(datos[1].equalsIgnoreCase("usuario")){
System.out.println(datos[0]+datos[1]);

Usuario usuario=new Usuario(Integer.parseInt(datos[0]),datos[2],datos[3],datos[4],datos[5],datos[6],Float.parseFloat(datos[7]),datos[8]);


Usuarios.put(Integer.parseInt(datos[0]), usuario);


Persona persona=new Persona(Integer.parseInt(datos[0]),datos[2],datos[3],datos[4]);

Personas.put(Integer.parseInt(datos[0]), persona);

}
if(datos[1].equalsIgnoreCase("monitor")){
System.out.println(datos[0]+datos[1]);

Monitor monitor=new Monitor(Integer.parseInt(datos[0]),datos[2],datos[3],datos[4],Integer.parseInt(datos[5]),datos[6]);
Monitores.put(Integer.parseInt(datos[0]), monitor);

Persona persona=new Persona(Integer.parseInt(datos[0]),datos[2],datos[3],datos[4]);

Personas.put(Integer.parseInt(datos[0]), persona);
}
i=0;
idsOcupados ++;
}

}
if(datos[1].equalsIgnoreCase("usuario")){
System.out.println(datos[0]+datos[1]);
idsOcupados ++;
}
if(datos[1].equalsIgnoreCase("monitor")){
System.out.println(datos[0]+datos[1]);
idsOcupados ++;
}
System.out.println(Monitores);
System.out.println(Usuarios);
System.out.println(Personas);

} catch (Exception e) {
e.printStackTrace();
} finally {
// En el finally cerramos el fichero, para asegurarnos
// que se cierra tanto si todo va bien como si salta
// una excepcion.
try {
if (null != fr) {

fr.close();

}
} catch (Exception e2) {
e2.printStackTrace();
}
}

}


}


public class Usuario extends Persona{

public int idUsuario;
public String nombre;
public String apellidos;
public String fechaNacimiento;
public String fechaAlta;
public String actividadesPrevias;
public float saldo;
public String actividadesActuales;

public Usuario(int idUsuario,String nombre,String apellidos,String fechaNacimiento,String fechaAlta,String actividadesPrevias, float saldo, String actividadesActuales){
super(idUsuario,nombre,apellidos,fechaNacimiento);

this.fechaAlta=fechaAlta;
this.actividadesActuales=actividadesActuales;
this.saldo=saldo;
this.actividadesPrevias=actividadesPrevias;
}

//GETTERS & SETTERS




@Override
public String toString() {
return "Usuario [nombre=" + nombre + ", apellido=" + apellidos+", fechaNacimiento=" + fechaNacimiento
+ ", fechaAlta=" + fechaAlta + ", actividadesPrevias=" + actividadesPrevias + ", saldo=" + saldo
+ ", actividadesActuales=" + actividadesActuales + "]";
}







public String getFechaAlta() {
return fechaAlta;
}

public void setFechaAlta(String fechaAlta) {
this.fechaAlta = fechaAlta;
}

public String getActividadesPrevias() {
return actividadesPrevias;
}

public void setActividadesPrevias(String actividadesPrevias) {
this.actividadesPrevias = actividadesPrevias;
}

public float getSaldo() {
return saldo;
}

public void setSaldo(float saldo) {
this.saldo = saldo;
}

public String getActividadesActuales() {
return actividadesActuales;
}

public void setActividadesActuales(String actividadesActuales) {
this.actividadesActuales = actividadesActuales;
}

}


public class Monitor extends Persona{

public int idMonitor;
public String nombre;
public String apellidos;
public String fechaNacimiento;
public int horasAsignables;
public String GruposImpartidos;

public Monitor(int idMonitor,String nombre, String apellidos, String fechaNacimiento, int horasAsignables, String GruposImpartidos){
super(idMonitor,nombre,apellidos,fechaNacimiento);


this.horasAsignables=horasAsignables;
this.GruposImpartidos=GruposImpartidos;


}
   


@Override
public String toString() {
return "Monitor [nombre=" + nombre + ", apellidos=" + apellidos + ", fechaNacimiento=" + fechaNacimiento
+ ", horasAsignables=" + horasAsignables + ", GruposImpartidos=" + GruposImpartidos + "]";
}




public int getHorasAsignables() {
return horasAsignables;
}

public void setHorasAsignables(int horasAsignables) {
this.horasAsignables = horasAsignables;
}

public String getGruposImpartidos() {
return GruposImpartidos;
}

public void setGruposImpartidos(String gruposImpartidos) {
GruposImpartidos = gruposImpartidos;
}


}


public class Persona {

public int idPersona;
public String nombre;
public String apellidos;
public String fechaNacimiento;

public Persona(int idPersona, String nombre, String apellidos,String fecha){
super();

this.idPersona=idPersona;
this.nombre=nombre;
this.apellidos=apellidos;
this.fechaNacimiento=fechaNacimiento;

}
//GETTERS & SETTERS
public int getIdPersona() {
return idPersona;
}

public void setIdPersona(int idPersona) {
this.idPersona = idPersona;
}

public String getNombre() {
return nombre;
}



public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getApellidos() {
return apellidos;
}

public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}

public String getFechaNacimiento() {
return fechaNacimiento;
}

public void setFechaNacimiento(String fechaNacimiento) {
this.fechaNacimiento = fechaNacimiento;
}





}