2013-02-10 67 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"); 

}; 
} 

主要方法是应用程序的入口点,当你的应用程序启动