Java - JAVA: Como crear un metodo "static" que devuelva los parametros de una clase completa

 
Vista:
sin imagen de perfil

JAVA: Como crear un metodo "static" que devuelva los parametros de una clase completa

Publicado por Camilo (2 intervenciones) el 19/08/2021 06:19:34
Hola, debo realizar una función estatica DesGente, de tipo "Gente", la cual debe hacer lo siguiente:

1. La función busca en el arreglo el Alquila que tenga la menor cantidad de horas y que la gente asociada a este alquiler sea mayor de edad.
2. La función debe retornar entonces la Gente que está asociado con ese alquiler.
3. Si ninguno de los clientes de estos alquileres es mayor de edad (Edad mayor o igual a 18) entonces debe retornar Null.

Ya estan creadas las clases y metodos:

- Gente = es una clase ya definida con sus parametros (Id, Nombre, Edad) , con sus metodo (getId, getNombre, getEdad)
- Alquila = es una clase ya definida con sus parametros (Gente, HorasAlquila) y es donde se encuentra los metodos (getHorasAlquila, getGente)

Aqui esta el código que he propuesto

public static Gente DesGente (Alquila[] alquileres) {

for (Alquila alquiler : alquileres){
if (alquiler.Gente.getEdad() > 17){
int min = 1000000;
if (min > alquiler.getHorasAlquila()){
min = alquiler.getHorasAlquila();
returndata = alquiler.getGente();
return returndata;

}
}

else{
return null;
}

}

Sin embargo, me sale error, dado que debo tener un retorno de tipo "Gente", con sus 3 parametros. No se como hacer ese retorno.

Muchas gracias por cualquier ayuda.
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 Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JAVA: Como crear un metodo "static" que devuelva los parametros de una clase completa

Publicado por Kabuto (1381 intervenciones) el 19/08/2021 12:24:01
En el código que propones, no indicas que tipo de dato es returndata, que debería ser Gente

1
2
Gente returndata = alquiler.getGente();
return returndata;


Sin embargo, al margen de esto, tu código no está encontrando el Alquila con menor cantidad de horas.

Lo que encuentra es el primer Alquila que tenga menos de 1000000 horas..., pero eso no significa que sea el alquiler con menos horas.

Es más, cuando encuentra un alquiler de menor de edad, automáticamente retorna null y se acabó la búsqueda... pero entonces no sigue comprobando el resto de alquileres, donde sí podrían haber mayores de edad..

Hay que enfocar el código de otra manera, para poder comprobar TODOS los Alquila, y averiguar quien es realmente el que tiene menos horas.

Prueba con este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static Gente DesGente (Alquila[] alquileres) {
 
        Gente returnData = null; //Solo dejará de ser null, si encontramos alquileres de gente mayor de edad
        int menor = Integer.MAX_VALUE; //Inicializamos con el máximo valor posible.
 
        for (Alquila alquiler: alquileres) {
            if (alquiler.Gente.getEdad() > 17) { //Mayor de edad detectado...
                if (alquiler.getHorasAlquila() < menor) { //Este alquiler es, de momento, el que menos horas alquila
                    menor = alquiler.getHorasAlquila(); //Actualizamos el valor de menor horas alquiler
                    returnData = alquiler.Gente; //Esta sera la Gente a retornar, excepto si luego encontramos otro que tenga menos horas.
                }
                //El ciclo FOR se repite hasta el final, ningún return lo va a interrumpir
                //Así nos aseguramos de consultar TODOS los alquileres.
            }
        }
 
        return returnData; //Terminado el ciclo FOR, hacemos return, sea lo que sea lo que se haya encontrado.
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

JAVA: Como crear un metodo "static" que devuelva los parametros de una clase completa

Publicado por Camilo (2 intervenciones) el 20/08/2021 05:14:07
Buenismoooo, funcionó perfecto, excelente explicación, cualquier ayuda que necesites, si puedo, con mucho gusto. Mil 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