什么是“ClassName objectName;”在主要方法之前呢?

时间:2010-01-28 16:10:24

标签: java object mainclass

this code中,我在“main”方法之前看到以下几行:

JTextArea displayArea;
JTextField typingArea;

我想知道这些线路的作用以及何时执行。据我所知,“主要”方法是“切入点”。因此,代码将从“main”方法的开头执行。如果从“main”方法调用它们,则将执行所有其他方法。如果是这样,则提到的2行将永远不会被执行。而且,即使他们将被执行,他们到底做了什么?这些“ClassName objectName”对做了什么?

6 个答案:

答案 0 :(得分:2)

这些被称为“声明”。他们声明存在两个变量,说明他们的类型和他们的名称。声明的位置决定了它们的范围,换句话说,允许程序的哪些部分知道这些特定变量,并且可以引用它们。

这是a tutorial about Java variables

答案 1 :(得分:0)

您尚未包含整个文件。

这些是字段的声明。它表示当实例化类时(即,从中创建对象),每个对象将具有对文本区域和文本字段的引用。但是,您必须创建这些对象。

注意主方法是静态的。这意味着它可以在没有实例化包含类的情况下运行。但是,大多数Java方法都在对象上运行。假设你的主要在C类。很可能在你的主要某个地方,你会看到一个“新C”,这意味着创建了一个C实例。然后将在该新对象上调用一些其他操作(在文件中查找其他非静态方法),这些操作将操作这两个字段。

答案 2 :(得分:0)

它指定了类型。

JTextArea displayArea; // this creates textarea type and thus textbox
JTextField typingArea; // thus creates textfield type var and thus text field

答案 3 :(得分:0)

这些是KeyEventDemo类的成员(引用)变量。

使用KeyEventDemo关键字实例化new时,每个实例都会有这些变量分别引用JTextAreaJTextField。这些被初始化为null,并被指定为addComponentsToPane方法中的几个实例的引用。

答案 4 :(得分:0)

当java虚拟机实例化对象时,将评估这些声明。这就是main方法之前的情况。

答案 5 :(得分:0)

那些是班级成员。

基本上,在java类中,您有方法和成员。成员是保存作为该类实例的Object状态的变量。

主方法是独立的,它是一个静态方法,因此它可以在没有类的实例的情况下运行。因此,您拥有在main()中运行的逻辑,并且您具有在类的实例上运行的逻辑。他们是完全分开的。

如果你也想要,你可以在main()函数中创建一个类的实例,然后如果需要完成成员函数的初始化,它就可以“运行”。

但是,并非所有类成员都在构造函数中初始化,并且那些将保持为null(因此在这种情况下,此时没有任何内容会“执行”)。在您的示例中,没有初始化,因此当构造函数逻辑启动时,这些成员将为null。