Comment afficher le contenu d'un objet en Java
Ok, maintenant, je pense que j'ai abandonné tout espoir de trouver une solution à ce qui devrait être un problème simple. En gros, je suis la création d'un des étudiants de l'enregistrement de système qui stocke des étudiants de détails dans une ArrayList. J'ai d'abord créé un constructeur dans la classe Student pour spécifier ce que les entrées de chaque étudiant aura. Ensuite, j'ai créé une instance de la classe Student dans la classe principale (c'est à dire de la classe avec la méthode main) et ensuite ajouté à l'élève de l'objet de la studentList ArrayList.
Par la voie, au lieu de coder en dur les étudiants détails, mon objectif initial était de permettre à l'utilisateur d'entrer les détails et puis je vais utiliser un Scanneur ou d'un BufferedReader objet pour obtenir les données stockées par l'Élève dans l'objet, et ensuite à la liste de tableaux, mais je vais avoir du mal que de bien, donc je vais probablement s'attaquer à ce problème dès que j'en ai fini avec celui-ci.
De toute façon, j'attends la sortie pour imprimer les élèves de détails, mais au lieu de cela, je reçois un emplacement de mémoire (c'est à dire [studentrecordsys.Student@15c7850]). Je suis conscient que j'ai besoin de surcharger la méthode toString, mais comment exactement ce qui est fait est ce que je n'arrive pas à obtenir. J'obtiens des erreurs de syntaxe un peu partout dès que j'entre dans le @Override bloc de code pour la méthode toString. Voici ce que j'ai essayé:
import java.util.*;
class Student {
private String studentID;
private String studentName;
private String studentAddress;
private String studentMajor;
private int studentAge;
private double studentGPA;
Student (String studentID, String studentName, String studentAddress, String
studentMajor, int studentAge, double studentGPA){
this.studentID=studentID;
this.studentName=studentName;
this.studentAddress=studentAddress;
this.studentMajor=studentMajor;
this.studentAge=studentAge;
this.studentGPA=studentGPA;
}
}
public static void main(String[] args) {
Student ali = new Student("A0123", "Ali", "13 Bond Street", "BSc Software Engineering", 22, 3.79);
List<Student> studentList = new ArrayList<>();
studentList.add(ali);
@Override
String toString() {
StringBuilder builder = new StringBuilder();
builder.append(ali).append(studentList);
return builder.toString();
}
System.out.println(builder);
}
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour mettre en œuvre les méthodes toString() sur l'objet Student.
ensuite dans votre méthode principale, appel
System.out.println(student);
commetoString
est appelée en interne...Vous pour remplacer
toString
méthode, car il va vous donner de l'information claire sur l'objet dans un format lisible par que vous pouvez comprendre.Le mérite sur la substitution
toString
:Source et en savoir plus sur le remplacement toString
Vous obtenez des erreurs parce que vous devez Remplacer la
toString
méthode dans la classe que vous souhaitez utiliser pour. j'.e que vous avez à mettre la méthode, avec le @Override à l'intérieur de votreStudent
classe.Et vous pouvez l'appeler comme ceci:
ou dans une boucle:
et ainsi de suite..
Aussi, dans votre code, vous créez une méthode à l'intérieur de votre
main
méthode. Bien sûr, vous obtiendrez des erreurs.System.out.println(x);
commetoString
est appelée en interne...