繁体   English   中英

动态类引用变量JAVA?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM