在下面的代码中,我创建了3个变量:
public class tuna extends JFrame {
//Creating 3 text fields
private JTextField item1;
private JTextField item2;
private JTextField item3;
我不明白为什么我需要做以下事情:
item1=new JTextField(10);
add(item1);
为什么有必要再次将item1声明为jtextfield? 仅仅是为了创建它的大小和文本等吗?
答案 0 :(得分:4)
你再次宣布。你用第二位代码初始化 - 差别很大。
这与任何其他参考变量没有什么不同。即,
public class MyFoo {
private String fooString; // (A)
public MyFoo() {
fooString = "hello world"; // (B)
}
你也可以声明它并在同一行上初始化它。
public class MyFoo {
private String fooString = "hello world";
private JTextField textField = new JTextField(10);
public MyFoo() {
// now can use both variables
}
因此,代码中的第一个语句(上面我的String示例中的语句(A))创建了JTextField类型的变量,但是在创建它们时会自动填充默认值,这些默认值用于引用变量(除了诸如整数之类的基元之外的所有内容) ,双打,花车,......)是null
。所以你有变量引用null或什么都没有,在使用之前你必须为它们分配一个有效的引用或对象,这就是你的第二个代码所做的事情(我的字符串中的语句(B))上面的例子)。
你会想要运行,而不是走到最近的Java教程或教科书的介绍,并阅读变量声明和初始化,因为你真的需要在尝试创建之前理解这个非常核心的基本概念Swing GUI,或任何Java程序。这很重要。
答案 1 :(得分:1)
声明和初始化是两回事。您可以像这样一次声明并初始化它们:
private JTextField item1 = new JTextField(10);
private JTextField item2 = new JTextField(10);
private JTextField item3 = new JTextField(10);
add(item1);
add(item2);
add(item3);
答案 2 :(得分:0)
在Java中,在编程方面非常肯定,有“引用”和对象。
创建对象时,通常会创建对象的引用。您可以稍后使用该引用访问该对象。
obj
是对您创建的新对象的Object
类型的引用。
你不能简单地写Object obj;
,因为这只会声明一个引用。你必须将一个对象“附加”到该引用,而不是你可以使用它,因为它会在某个地方引导。
希望这有助于你