DECLARACIÓN printf produce salida alguna extraña que no tiene sentido

votos
0

Todo esto es mi código para la inclusión de la información de mi matriz:

private void listStudent()
{
    {       
System.out.printf(%s %-7s %14s %10s,ID,First Name,Last Name,Age\n);
for (int i= 0; i<count; ++i)
 {
 System.out.println(arr[i]);   
}
System.out.println();
Scanner scanner = new Scanner(System.in);
scanner.nextLine();


public class Student {
private String fname;
private final String lname;
double age;
private final String id;
int count;

Este es mi código del archivo student.java

Student(String id, String fname, String lname, double age, int count) 
{
   this.id = id;
   this.fname = fname;
   this.lname = lname;
   this.age = age;
   this.count = count;
}

Esto es lo que la salida del código me sale es.

Publicado el 03/06/2018 a las 02:14
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Creo que el problema que desea pedir está conectado con el siguiente resultado: Estudiante @ 55f96302. Ocurre debido a la línea

System.out.println(arr[i]);   

Como entiendo que está intentando imprimir la información objeto Student, pero Java no funciona de tal manera - si sólo va a imprimir un elemento de la matriz (que es un objeto), se imprimirá se CLASSNAME @ picadillo .

Con el fin de imprimir los datos reales de los estudiantes, la clase del estudiante también debe contener captador para los valores. Así clase del estudiante se verá así:

public class Student {

    private String id;
    private String fname;
    private String lname;
    private double age;
    private int count;

    Student(String id, String fname, String lname, double age, int count) {
        this.id = id;
        this.fname = fname;
        this.lname = lname;
        this.age = age;
        this.count = count;
    }

    public String getId() {
        return id;
    }

    public String getFname() {
        return fname;
    }

    public String getLname() {
        return lname;
    }

    public double getAge() {
        return age;
    }

    public int getCount() {
        return count;
    }
}

Luego, en 'para' bucle que tiene que hacer lo siguiente:

for (int i= 0; i<count; ++i)
 {
 System.out.println(arr[i].getId() + arr[i].getFname() + arr[i].getLname());   
}

y así.

Respondida el 03/06/2018 a las 05:45
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more