2016-03-05 43 views
-2

我想用「公衆詮釋CountWord」,而不是「公共靜態INT CountWord」,下面的代碼它給我的錯誤,不能使靜態參考來自CountWord類型的非靜態方法CountWord(String,String),爲什麼我得到這個錯誤以及如何在不使用靜態關鍵字的情況下使用它。 感謝Java中使用的方法公衆詮釋,而不是公共靜態INT

public static void main(String[] args) { 
    System.out.println(CountWord("the","test.txt")); 
} 

public int CountWord(String word, String textFilePath){ 

} 
+3

我強烈建議你閱讀Java教程(https://docs.oracle。 com/javase/tutorial /),這是一個非常基礎的語言機制,不應該在這裏被問到。 –

回答

2

嘗試創建類的instance調用這樣的方法:

public static void main(String[] args) { 
     ClassName cn = new ClassName(); 
     System.out.println(cn.CountWord("the","test.txt")); 
    } 

    public int CountWord(String word, String textFilePath){ 

    } 
+3

有沒有理由回答確切的重複 – Idos

+0

除非他們兩人同時發送 –

+0

我寫了berfore,這是有用的 – Abdelhak

2

bcoz CountWord()是一種替代方法,以中main()(一靜態方法)來訪問它,你需要一個CountWord()

等級的實例,例如:

class Test{ 

    public static void main(String[] args) { 
      Test t = new Test(); 
      System.out.println(t.CountWord("the","test.txt")); 
     } 
    public int CountWord(String word, String textFilePath){ 
     } 
} 
1

static表示該方法屬於一個對象。爲了使用這個方法,你必須首先創建一個聲明該方法的類的對象。

假設你的類如下所示:

public class WordCounter{ 
    public int countWord(String word, String textFilePath){ 
     .... 
    } 
} 

然後你的主要方法是這樣的:

public static void main(String[] args){ 
     WordCounter counter = new WordCounter(); 
     counter.countWord("I am a String", "I am too"); 
    }