[英]Dynamic class reference variable JAVA?
我是Java新手,仍然有很多东西要学习。 我具有嵌入式C编程经验,但对面向对象的编程是全新的。
我得到了我需要了解的以下内容。 当您使用Java创建类时,它就是您要创建的对象的蓝图。 并说我有一个带有按钮的GUI,在单击“创建新自行车”按钮后,您会在GUI等中输入它要求的所有实例变量。
然后,说完一个完整的按钮后,将创建一个对象。 利用您在GUI中提供的所有数据来适应蓝图。
因此,在您的动作侦听器中,当按下“完成”按钮时,将显示一段代码,例如Bicycle bike = new Bicycle();。 应该运行。 但是自行车是静态的,您永远都不知道会有多少辆自行车。 那么如何使参考变量动态化或像其动态一样起作用呢?
抱歉,我尝试使用以下方法清除它。
public void actionPerformed(ActionEvent e) {
Bicycle bike = new Bicycle();
}
这是按下Jbutton时执行的动作。 这将创建一个名为“ bike”的对象。 但是当再次按下按钮时会发生什么呢?它会覆盖先前名为Bike的对象吗?
而且您不知道用户通过按下按钮将创建多少个自行车类型的对象。 所以我想知道是否可以通过以下方式使用数组之类的东西
String bike[] = {"bike1","bike2,"bike3"};
for(int i=0;i<3;i++){
Bicycle bike[i] = new Bicycle();
}
还是使用“数组列表”,因为最终您将不知道将创建多少个对象?
那么如何使参考变量动态化或像其动态一样起作用呢?
默认情况下,这就是引用的行为。 它们没有什么静态的。 即使您使用static
字段,从C理解的意义上讲,它也不是静态的。 它在类加载之前不存在,并且如果将类加载到不同的类加载器中,则可以多次存在。 如果卸载了类加载器,它甚至可能消失。
如果您的字段不是static
,则它是动态的,尤其是它是局部变量时。
如果您想要一个可以保存对多个Bicycle
实例的引用的变量,则可以使用Collection
例如List
:
List<Bicycle> bikes = new ArrayList<Bicycle>();
然后,每次创建新的Bike实例时,都将其添加到List中:
Bicycle bike = new Bicycle();
bikes.add (bike);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.