Java Ne peut pas trouver le symbole de constructeur
Je suis complètement nouveau pour Java, donc je suis désolé si ma question est stupide. Im travaillant sur cette mission, et j'ai lu sur les principales méthodes d'heures maintenant, mais je ne peux pas le comprendre. J'ai mis une partie de mon code ci-dessous. Je suis peut-être loin, mais ce que j'espère accomplir est d'obtenir la principale méthode pour démarrer le constructeur, mais quand je compile j'ai une erreur disant "impossible de trouver le symbole - constructeur Joueur". Maintenant, Im deviner que cela a quelque chose à voir avec les paramètres de la chaîne du constructeur, mais je suis de tout. Si quelqu'un pouvait éclairer sur ce, probablement très simple problème, je serais très heureux 🙂
public class Player {
private String nick;
private String type;
private int health;
public static void main(String[] args)
{
Player player = new Player();
player.print();
}
public Player(String nickName, String playerType)
{
nick = nickName;
type = playerType;
health = 100;
System.out.println("Welcome " + nick +" the " + type + ". I hope you are ready for an adventure!");
}
public void print()
{
System.out.println("Name: " + nick);
System.out.println("Class: " + type);
System.out.println("Remanining Health: " + health);
}
- Vous êtes en train de créer un
Player
, mais vous n'êtes pas en passant unnickName
ou unplayerType
.
Vous devez vous connecter pour publier un commentaire.
Player
n'a pas de no-arg constructeur, vous pouvez utiliser:Si vous souhaitez inviter l'utilisateur pour le
Player
arguments, vous pouvez lire comme suit:import java.util.Scanner;
Clairement que vous utilisez
0-arg constructor
, si vous n'avez pas un: -Noter que, lorsque vous fournissez un constructeur paramétré dans votre classe, le compilateur ajoute pas de constructeur par défaut. Vous devrez ajouter un 0-arg constructeur manuellement, si vous l'utilisez.
Donc, soit vous pouvez ajouter un
0-arg constructor
en tant que tel: -ou, utilisez le constructeur paramétré pour créer l'objet.
Lorsque votre classe définit explicitement constructeur, implicite non-arg constructeur ne sera pas créé.
Vous explicite d'un constructeur dans votre classe
Et en essayant d'invoquer la non-arg constructeur
Soit vous en avez besoin pour passer des paramètres dans le code ci-dessus (ou) de créer des no-arg constructeur.
Ce que vous avez essayé de faire dans votre
main()
-méthode était de créer un nouvel objet de Joueur. Mais le problème est que vous avez eu à utiliser le constructeur-vous mis en œuvre (Player(String, String)
) mais vous avez utilisé un constructeur sans paramètres (Player()
).Vous utilisez des chaînes vides (par exemple, si vous voulez obtenir un joueur fictif)
ou vous devez donner à la nouvelle instance du lecteur le nom et le type que vous voulez, par exemple, les
Ce qui concerne.
Un constructeur par défaut est créé par java quand un construtor est manquant, ce construtor appelle tout simplement la super-classe. Lorsque vous avez défini un constructeur explicite java habitude d'en créer un. Ainsi, vous pouvez définir un constructeur par défaut dans votre classe
par exemple,
ou de modifier le code pour appeler le constructeur u définie.