Java - Clase Persona , Clase Fecha, Arrays de Objetos- AYUDA!

 
Vista:
sin imagen de perfil

Clase Persona , Clase Fecha, Arrays de Objetos- AYUDA!

Publicado por Eduardo (5 intervenciones) el 23/04/2017 01:19:41
Hola que tal, tengo el siguiente ejercicio! Se me complica mas que nada en los puntos D y E porque se mezclan las clases, tengo un parametro que es un objeto q es FECHA en la clase PERSONA y luego me pide que devuelva la perosna mas joven de un array de tipo PERSONA. AYUDA!

Teniendo en cuenta la siguiente clase de Java

1
2
3
4
5
public class Persona
{
String nombre;
Fecha fecha_nacimiento;
};

a)Escribir la clase Fecha que sera necesaria

b)Escribir el constructor Persona(String nombre, Fecha f_nac).

c)Escribir el metodo de instancia boolean masJovenQue(Persona otro)que indica si

la instancia es una persona mas joven que la persona pasada como parametro.

d)Escribir el metodo de clase static Persona masJoven(Persona[] grupo)que devuelve
la persona mas joven de un arreglo de Personas.

e)Escribir el metodo de clase static Persona buscar(Persona[] grupo, String nombre)
que devuelve la persona cuyo nombre coincide con el parametro. Si hay mas de una,
se puede devolver cualquiera de ellas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Sebastian
Val: 282
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Clase Persona , Clase Fecha, Arrays de Objetos- AYUDA!

Publicado por Sebastian (91 intervenciones) el 23/04/2017 05:12:03
D) Escribir el metodo de clase static Persona masJoven(Persona[] grupo)que devuelve
la persona mas joven de un arreglo de Personas.

En este escribes el método el cual va retornar la persona mas joven de acuerdo a la fecha.
Entonces necesitas hacer un ciclo el cual vaya recorriendo el vector y comprobando cual es la fecha menor

1
2
3
4
5
6
7
8
9
10
public static Persona masJoven(Persona[] grupo) {
	Persona aux=grupo[0];
	for (int i = 1; i <grupo.length ; i++) {
	  if(aux.fechaNacimeinto.before(grupo[i].fechaNacimeinto)) {
	      aux= grupo[i];
	  }
	}
	return aux;
 
    }

e)Escribir el metodo de clase static Persona buscar(Persona[] grupo, String nombre)
que devuelve la persona cuyo nombre coincide con el parametro. Si hay mas de una,
se puede devolver cualquiera de ellas.

tiene que hacer lo mismo que el anterior pero utiliza el metodo equals que tiene la clase string,
para comparar el nombre que llega al metodo con el nombre de cada persona que hay en el vector.

si el nombre que busca no esta va a retornar un null.

1
2
3
4
5
6
7
8
9
public static Persona buscar(Persona[] grupo,String nombre) {
	for (int i = 0; i <grupo.length ; i++) {
	  if(nombre.equals(grupo[i].nombre) ) {
	     return grupo[i];
	  }
	}
	return null;
 
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Clase Persona , Clase Fecha, Arrays de Objetos- AYUDA!

Publicado por Eddu (5 intervenciones) el 23/04/2017 21:01:10
Sos un genio! Sabes que solamente en el.método de buscar ma persona mas joven me subraya como error la función before. Que será?? Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sebastian
Val: 282
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Clase Persona , Clase Fecha, Arrays de Objetos- AYUDA!

Publicado por Sebastian (91 intervenciones) el 23/04/2017 21:22:15
Creo que debe ser a que no has importado la clase Date.
ya que el método "before" pertenece a la clase Date, para manejar las fechas.
para importarla pones esto al inicio de la clase.

1
import java.util.Date;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Clase Persona , Clase Fecha, Arrays de Objetos- AYUDA!

Publicado por Eddu (5 intervenciones) el 02/05/2017 19:35:33
No pude responder antes. El tema es que no compara las fechas porque en la otra clase llamada Fecha tengo 3 parámetros (int) para formar la fecha.
Public clases Fecha
{
Int año
Int mes
Int día
La verdad q no se como compararlas...
O tendría q buscar otra forma de comparar para usar el before? O usar otro tipo de parametros? Gracias. Disculpa la molestia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sebastian
Val: 282
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Clase Persona , Clase Fecha, Arrays de Objetos- AYUDA!

Publicado por Sebastian (91 intervenciones) el 03/05/2017 22:40:20
aaa ya, es que estas creando una clase llamada Fecha, yo pensé que implementabas una clase que trae java para controlar las fechas.
El método Before, solo se puede utilizar sí utiliza la clase que tiene java llamada Date.
Entonces para comparar la fecha, puedes crear un método dentro de la case fecha, donde reciba la fecha para comparar con la que esta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// en la clase fecha pones el siguiente método
    public boolean comparateFecha(Fecha fecha) {
	if(año<=fecha.año) {
	    if(mes<=fecha.mes) {
		if(dia<=fecha.dia){
		   return true;
		}else {
		    return false;
		}
	    }else {
		return false;
	    }
	}
	return false;
    }
// y el código le cambia el before por comparateFecha()
public static Persona masJoven(Persona[] grupo) {
	Persona aux=grupo[0];
	for (int i = 1; i <grupo.length ; i++) {
	  if(aux.fechaNacimeinto.comparateFecha(grupo[i].fechaNacimeinto)) {
	      aux= grupo[i];
	  }
	}
	return aux;
 
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Clase Persona , Clase Fecha, Arrays de Objetos- AYUDA!

Publicado por Eddu (5 intervenciones) el 04/05/2017 13:05:03
AH SI! Habia hecho eso pero para compara solo dos objetos, tenia que usar el mismo metodo para usarlo en el ARRAY! GRACIAS!
Te jodo con otro ejercicio que me esta volviendo loco. Espero no joderte, si podes ayudarme en lo que sea, o darme alguna pauta te lo agradeceria crack! MIL GRACIAS!

Teniendo en cuenta la siguiente clase de Java:

1
2
3
4
5
public class Agenda
{
	Persona[ ] contactos;
	String[ ] telefonos;
};

ANTES DE PASARTE LAS CONSIGNAS TE PONGO ESTAS DOS NOTAS PARA QUE LO LEAS:

NOTA 1: LA CLASE PERSONA YA LA TENGO. Que tiene como atributos un Strgin Nombre y un objeto Fecha FechaNacimiento ( a su vez la clase Fecha tiene 3 parametros INT, para el dia, mes y año)

NOTA 2: ACA ABAJO TE PASO EL METODO mismaPersona que lo tengo en la clase PERSONA que mas abajo en las consignas me pide que lo use.

1
2
3
4
5
6
7
public boolean mismaPersona(Persona otro)//PUNTO e)
{
	if(nombre == otro.nombre && fecha_nacimiento.esIgual(otro.fecha_nacimiento))
		return true;
 
	return false;
}

CONSIGNAS:

a)Escribir el constuctor Agenda(int tamanio)que inicializa contactos y telefonos con
arreglos del tamano dado.

b)Escribir el metodo de instancia void guardar(Persona contacto, String telefono)
que guarda los datos del contacto en la primera posicion libre *(!) que encuentre en los
arreglos. Se supone que si una posicion esta libre en un arreglo, tambien lo estara en
el otro. Si no hay una posicion libre, el contacto simplemente no se guarda.

c)Escribir el metodo de instancia void eliminar(Persona contacto)que elimina de la
agenda los datos del contacto. Debe eliminar tanto a la persona como a su numero de
telefono. Usar el metodo mismaPersona del ejercicio 4. Si el contacto no aparece en la
agenda, el metodo no hace nada.

d)Escribir el metodo de instancia boolean pertenece(Persona contacto)que devuelve
true si el contacto esta en la Agenda o false en caso contrario.

e)Escribir el metodo de instancia String dameTelefono(Persona contacto). Usar el
metodo mismaPersona del ejercicio 4. (REQUIERE: pertenece(contacto)==true)

*(!)
Comparar con null para saber si una posicion esta libre
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar