Título: Ayuda para que un metodo me devuelva un objeto Publicado por: rych en 1 Mayo 2016, 02:05 am Hola ,espero puedan ayudarme estoy tratando de hacer un programa en donde tengo una clase llamada Alumno donde tengo definidas las siguientes variables
public class Alumno { String name; int edad; float calif; } y mi main,en el cual tengo por ahorita definidos dos metodos uno que inicializa a los alumnos y otro que me los muestra por pantalla, pero tengo problemas para realizar un tercer metodo en el cual me muestre al alumno con mayor calificacion esto incluyendo todos sus datos , espero puedan ayudarme este es mi codigo import java.util.Scanner; public class Prog2 { public static void ini_alumno (Alumno A){ Scanner leer = new Scanner(System.in); System.out.println("Da nombre"); A.name = leer.nextLine(); System.out.println("Da edad de " + A.name + ": "); A.edad = leer.nextInt(); A.calif = (float)(Math.random()*10.0); // La calificacion se obtiene aleatoriamente. } public static void ver_info_alumno(Alumno A){ System.out.printf("%s\t\t%d\t\t%2.1f\n",A.name,A.edad,A.calif); } static float promedio(float AlumnoA1 , float AlumnoA2, float AlumnoA3){ //Funcion float prom; prom = (AlumnoA1 + AlumnoA2 + AlumnoA3)/3; return prom; } static Alumno mejor_calificacion (Alumno A1 , Alumno A2, Alumno A3){// Este es el //metodo que no puedo realizar if(A1.calif>A2.calif){// aqui comparo las califcaciones return System.out.println(ver_info_alumno(A1));//Pero en esta parte no se // como realizar el return del metodo , ya que no se como retornar un objeto } } public static void main(String[] args) { System.out.println("Alumno 1"); Alumno A1= new Alumno(); ini_alumno(A1); System.out.println("Alumno 2"); Alumno A2= new Alumno(); ini_alumno(A2); System.out.println("Alumno 3"); Alumno A3= new Alumno(); ini_alumno(A3); System.out.println("Nombre "+" Edad "+ " Calificacion"); ver_info_alumno(A1); ver_info_alumno(A2); ver_info_alumno(A3); System.out.printf("fEl promedio de los alumnos es :"+promedio(A1.calif, A2.calif, A3.calif)); } } Espero puedan ayudarme,soy nuevo en esto gracias!! Título: Re: Ayuda para que un metodo me devuelva un objeto Publicado por: LeHaine en 1 Mayo 2016, 03:29 am Hola. Para realizar tu tercero método, necesitas asegurarte de que el método returns el objeto correcto.
El problema: Código: public static void ver_info_alumno(Alumno A){ System.out.printf("%s\t\t%d\t\t%2.1f\n",A.name,A.edad,A.calif); } El método returns void. Quieres return String. Entonces: Código: public static String ver_info_alumno(Alumno A){ return A.name + "\t\t" + A.edad + "\t\t" + A.calif; } Y en tu tercero método, puedes usar System.out.println: Código: static Alumno mejor_calificacion (Alumno A1 , Alumno A2, Alumno A3) { if(A1.calif > A2.calif){ System.out.println(ver_info_alumno(A1)); } } Por favor, discúlpame por mi español. Título: Re: Ayuda para que un metodo me devuelva un objeto Publicado por: crack81 en 1 Mayo 2016, 03:44 am Hola @rych primero que todo tu codigo parece mas codico style C que codigo java, ya que
esta hecho de manera secuencial lo cual no esta mal pero en java se "supe" se deberia trabajar con el paradigma de programacion orientada a objetos. Bueno con respecto a tu pregunta la respuesta es esta: Código
Pero no es precisamente lo mejor, imagina que tienes mas de 3 alumnos esta funcion no serviria lo mejor es guardar tus alumnas en un arreglo o lista de alumnos para despues recorrerlos con un for y saber cual tiene mejor califiacion. Bueno me decidi ha armarte una posible solucion Código
Título: Re: Ayuda para que un metodo me devuelva un objeto Publicado por: rych en 1 Mayo 2016, 19:30 pm @crack81 muchas gracias por la explicacion , lo que sucede que apenas estamos conociendo a ver los conceptos de objetos ,clases y pase de parametros, respecto a la respuesta me podrias ayudar es que en el metodo que me indicas el ejercicio me pide mostrar por pantalla todos los datos de el alumno que tenga la mejor calificacion y ya intente usando lo que me comentas pero no me muestra los datos del alumno.
Gracias por lo ayuda. Título: Re: Ayuda para que un metodo me devuelva un objeto Publicado por: rych en 1 Mayo 2016, 19:34 pm @LeHaine gracias tu español se entiende muy bien ! pero tengo un proble ma es esta parte
public static String ver_info_alumno(Alumno A){ return A.name + "\t\t" + A.edad + "\t\t" + A.calif; } Ya que no me muestra por pantalla la informacion de los alumnos intente modicifcar pero aun soy novato en esto :-( Título: Re: Ayuda para que un metodo me devuelva un objeto Publicado por: + 1 Oculto(s) en 2 Mayo 2016, 03:29 am no utilices donde sea static
todo tiene un objetivo... saludos... |