这不是一个我期望得到具体答案的问题,因为它相当广泛。我正在自学 Java,并且特别关注动态内存分配。让我们举一个非常简单的例子:假设我有一个非常基本的数据输入屏幕。如此基本以至于发生的所有事情都是用户输入一系列名字,可能是员工目录或其他东西。在我的 JFrame 上,我有一个输入这些名称的 JTextField 控件。员工人数仅在运行时才知道。用户输入一个名称并按下回车键,该键将名称提交到内存并创建一个新对象来存储下一个名称(我知道这很傻,但我正在努力集中注意力)。像这样的东西(不要太从字面上理解 - 我显然没有编译这个):
public class Employee {
String fName;
public void setName( String n ) {
fName = n;
}
};
public class JFrameEmp {
//blah, blah, blah
JTxtName.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
/* Handle the enter key */
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
/* Store name */
this.setName(JTxtName.getText());
/* Create New Object */
Employee next = new Employee();
}
};
}
}
我需要帮助的地方在最后一行。即使这可行,假设我想打印出输入名称的列表。在我的方法中,我看不到唯一标识每个对象的方法(以便我可以遍历它们)。
我需要创建一个数组来存储这些吗?但它有一个固定的长度并且存在于堆栈中。我宁愿找到一种方法来使用堆来允许一个开放式列表。
我应该阅读什么来学习如何做到这一点?这一定是一件很常见的事情,但我所拥有的书籍似乎没有涵盖它。
谢谢。我希望我已经很好地解释了这一点,而无需过多详细说明。