2013-02-10 72 views
2

最近我一直在練習一點Java。我在一個類中創建了一個隨機鍵盤,另一個類稱爲form。Java - 無法添加文本

我設法從另一個類中添加鍵盤方法。

但是,當我試圖添加一個文本(System.out.println(「文本」);)它不會允許我,如果我在外部包裝它做它不會顯示。

鍵盤類:

import java.util.Scanner; 

class Keyboard { 
    public static void main(String args[]){ 
     System.out.print("Enter your name... "); 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Your name is " + sc.nextLine()); 

    } 
} 

FillInForm類問題1:

public class FillInForm { 


    Keyboard j = new Keyboard(); 
    System.out.println("text"); <-------------- doesn't allow me. Why? 


} 

FillInForm類問題2:

public class FillInForm { 


    Keyboard j = new Keyboard(); 
{ 
     System.out.println("text"); <---------Also doesn't work. Why? 
    } 
} 

這只是爲了練習,類和方法不必有意義。隨機制作。我只想知道爲什麼我不能在名爲'FillInForm'的類中顯示文本。

我知道這個問題是微不足道的,但有人可以幫我嗎?謝謝。

+1

什麼錯誤時,自動調用? – Arpit 2013-02-10 19:30:28

回答

2

將語句放在方法中,而不是放在類塊中。作爲一個聲明,該聲明Keyboard可以在類塊存在,但不是println聲明:

public class FillInForm { 

    Keyboard j = new Keyboard(); 

    public void myMethod() { 
     System.out.println("text"); 
    } 
} 

對於問題2,問題是當你再次試圖將一個非陳述語句類相同塊。

鑑於輸入功能是Keyboard類的static主要方法,除非你想使用KeyBoard作爲Scanner類的包裝這個功能最好移到main方法FillInForm。如果是後者,您可以創建一個實例方法來訪問Scanner#nextLine中的功能。

+0

爲了增加清晰度 - 如果需要,「Keyboard j ...」行可能在方法之外。它取決於其他方法是否需要訪問'j'變量。 – 2013-02-10 19:33:43

+0

是的,很好的調用... :) – Reimeus 2013-02-10 19:36:05

+0

我照你說的做了,但發生了錯誤信息「錯誤:在類FillInForm中找不到主要方法,請定義主要方法爲: public static void main(String [] args) 「 我已經按照建議添加了一個主要方法。但它不允許我從另一個允許輸入文本的類中調用鍵盤功能。有什麼我失蹤?它現在只顯示文本,但不能使用其他類的方法。 – Dembele 2013-02-10 19:56:32

0

代碼必須是方法的一部分,在最後兩段代碼中不是這種情況。

0

該代碼必須是方法的一部分。而你需要一個main方法添加到一個類:

public class FillInForm { 

... other methods ... 

    public static void main(String[] args) { // static means, this method does not belong to an instance of the class, it belongs to the class itself 
    Keyboard j = new Keyboard(); 
    System.out.println("text"); 

}; 
} 

主要方法是應用程序的入口點,當你的應用程序啓動