Java appelant une méthode d'une autre classe
Je suis en train de travailler sur un problème et je suis très coincé parce que je commence tout juste à apprendre le java. Toute aide que je peux arriver à comprendre ce serait génial. Je dois écrire un programme qui a deux classes. La classe principale sera lu à partir d'un fichier et utilise la deuxième classe pour savoir combien de fois les mêmes mots ont été répétés dans le fichier et de les ajouter à un tableau qui contans les mots et le nombre de fois que le mot répété. Je suis ok avec la lecture du fichier de la partie. Je n'arrive pas à les envelopper ma tête autour de la façon d'appeler une méthode à partir de la deuxième classe à ajouter le mot dans le tableau et d'incrémenter le compteur.
Voici mon code si loin si vous l'exécutez, vous verrez comment les nouvelles je suis de ce nombre d'erreurs que vous obtiendrez.
import java.io.*;
public class Words{
public static void main (String [] args)
{
ProcessInput();
System.out.println("\nprogram finished");
}
public static WordList ProcessInput( )
{
BufferedReader inputFile;
String inputLine;
String[] word;
WordList words;
try
{
inputFile=new BufferedReader(new FileReader ("inputFile.txt"));
inputLine = inputFile.readLine();
while (inputLine !=null)
{
word=inputLine.toLowerCase().split(" ");
for (int i=0; i<word.length; i++){
System.out.println (word[i]);
words=addWord(word[i]);
}
inputLine = inputFile.readLine();
}
inputFile.close();
}
catch (IOException ioe)
{
System.out.println (ioe.getMessage());
ioe.printStackTrace ();
}
return words;
}
}
class WordList {
String [] words;
int wordcount;
public WordList ( ){
words= new String [1000];
wordcount=0;
}
public String addWord (String word) {
words[wordcount]=word;
wordcount=+1;
return words[wordcount];
}
public void printList (){
for (int i=0; i<wordcount; i++){
System.out.println (words[i]);
}
}
}
source d'informationauteur blackStar
Vous devez vous connecter pour publier un commentaire.
Vous êtes très proche. Ce que vous devez retenir, c'est lorsque vous appelez une méthode d'une autre classe, vous devez indiquer au compilateur où trouver cette méthode.
Ainsi, au lieu de simplement appeler
addWord("someWord")
vous aurez besoin d'initialiser une instance de la base de mots de la classe (par exemple,WordList list = new WordList();
), puis d'appeler la méthode utilisant que (c'est à direlist.addWord("someWord");
.Cependant, votre code au moment où se jettent encore une erreur là, parce que ce serait d'essayer d'appeler un non-statique méthode de statique. Donc, vous pouvez soit faireaddWord()
statique, ou de changer les méthodes, dans les Mots de la classe, de sorte qu'ils ne sont pas statiques.Mon mal avec le paragraphe ci-dessus - mais vous pourriez vouloir reconsidérer
ProcessInput()
être une méthode statique - t-il vraiment besoin de l'être?Vous devez initialiser l'objet (création de l'objet lui-même) afin d'être en mesure d'appeler ses méthodes, sinon vous obtiendrez une
NullPointerException
.