0

这段代码中,我在“main”方法之前看到了以下几行:

JTextArea displayArea;
JTextField typingArea;

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

4

6 回答 6

2

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

这是关于 Java 变量的教程

于 2010-01-28T16:13:41.987 回答
0

您还没有包含整个文件。

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

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

于 2010-01-28T16:14:12.823 回答
0

它指定类型。

JTextArea displayArea; // this creates textarea type and thus textbox
JTextField typingArea; // thus creates textfield type var and thus text field
于 2010-01-28T16:15:18.810 回答
0

这些是KeyEventDemo类的成员(参考)变量。

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

于 2010-01-28T16:15:45.503 回答
0

当对象被 java 虚拟机实例化时,这些声明会被评估。那是在main方法是这种情况之前。

于 2010-01-28T16:16:09.640 回答
0

那些是班级成员。

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

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

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

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

于 2010-01-28T16:17:50.147 回答