Comment définissez-vous un constructeur en Java?


Je suis nouveau sur Java, donc je ne sais pas exactement quel est le problème avec mon code. Je continue à avoir un problème de compilation non résolu: Le constructeur Student() n'est pas défini. J'y travaille depuis des heures maintenant mais je ne sais pas quel est le problème. Je vous serais reconnaissant de l'aide. Merci! C'est la classe principaleVoici la classe des étudiants

Author: Satya, 2015-12-12

8 answers

Vous avez créé votre constructeur correctement:

public Student (String n, char g, Date b, Preference p){
     name = n;
     gender = g;
     birthDay = b;
     pref = p;
}

Cependant, ce constructeur ne fonctionne qu'avec tous ces arguments donnés. Vous essayez de créer un objet Étudiant sans paramètres dans le constructeur. Ce cas est appelé le constructeur par défaut .

Pour créer un tel constructeur, vous feriez:

public Student (){
     //some default initializations
}
 1
Author: Ricky Mutschlechner, 2015-12-12 04:31:58

Vous instanciez un étudiant en utilisant

new Student()

Ce qui est faux car vous n'avez pas encore défini un constructeur qui ne prend aucun paramètre.

Vous pouvez le corriger en définissant un nouveau constructeur

public Student(){
   //Set default values here
}

, Ou en utilisant le constructeur que vous avez déjà.

Student bestStudent = new Student("Bryan", 'm', ...);
 1
Author: F. Fiebig, 2015-12-12 04:35:17

Java fournit un constructeur par défaut pour une classe lorsque vous n'en définissez pas une ( dans ce cas Student() ) . Cependant, depuis défini l'étudiant du constructeur (Chaîne s, char c, Date d, Préférence p), ce constructeur par défaut n'est pas automatiquement fourni.

Vous devez maintenant utiliser le constructeur que vous avez spécifié. Ou implémenter un constructeur dans la classe Student qui n'accepte aucun paramètre

public Student() { }

Vous pouvez l'utiliser pour appeler l'autre constructeur par défaut variable.

public Student() {

     this("", '', null, null); //Assuming you code is made to handle such a situation
}
 1
Author: CodeBreaker, 2015-12-12 06:53:02

Vous appelez new Student() sans arguments. Cela s'appelle un constructeur par défaut. Vous n'avez pas besoin de spécifier un constructeur par défaut s'il n'y a pas d'autres constructeurs. Mais si vous avez un autre constructeur qui prend des arguments, vous devez le spécifier.

Vous devez simplement ajouter ceci à votre classe d'étudiant.

public Student(){
}
 0
Author: Josh Chappelle, 2015-12-12 04:32:16

Vous avez besoin pour passer une valeur pour n, g, b, p.

, Donc new Student("hi", 'a', new Date(), myPreference)

 0
Author: kag0, 2015-12-12 04:33:46

Lorsque vous initialisez vos variables dans Student (), elles doivent avoir des modificateurs:

private String name; private char gender; private Boolean matched;

Etc; cela pourrait être la cause de votre erreur.

 0
Author: Ben Fedorko, 2015-12-12 04:34:40

Ajoutez un autre constructeur appelé constructeur sans argument à votre classe student. Parce que dans la boucle for, vous en utilisez une sans aucun argument. Et vous ne l'avez pas défini dans la classe des étudiants.

Ajoutez simplement les lignes suivantes.

public Student() {
}
 0
Author: Sher Alam, 2015-12-13 20:07:51

Exemple: Si vous avez une classe avec le nom Main Vous pouvez donc définir un constructeur pour cette classe Comme:

Main(){

}

Pour plus de détails sur les constructeurs, veuillez vous référer à ce lien.

 0
Author: Bhupendra Patidar, 2017-11-28 13:20:13