Java 不使用参数调用对象

标签 java

我是编程新手。我做了这个构造函数:

public Attraction(int baseprice, String name) {
    this.baseprice = baseprice;
    this.name = name;
}

我已经在不同的类中初始化了构造函数:

Attraction attraction = new Attraction(ridename, price)

我想在第三个类中使用这些数据,而不必传入参数,所以它看起来像这样:

Attraction attraction = new Attraction()

这将允许我使用 getter 和 setter 来更改吸引力对象中的现有数据。但是,目前这是不可能的,因为即使我想使用现有数据,我也必须传递名称和价格。

谁能告诉我该怎么做?任何帮助,将不胜感激。

最佳答案

你似乎误解了java的工作原理。

用于创建新对象的关键字的 new 名称不是随机选择的:每次您编写 new Attraction([don't Matter What Gos Here]),一个对象就制作完成了(这个对象就是 Attraction 的“一个实例”)。每个单独的对象都有自己的一组字段。也不存在“一个实例来统治它们”——没有办法直接说:“给我最后创建的实例”或“给我一个实例;我从不希望存在多个实例”。

您需要传递引用:

Attraction a = new Attraction(ridename, price);
... do stuff
someOtherMethod(a); // pass 'a' around via a parameter, or...
return a; // pass 'a' around by returning it, or...
this.someFieldOfTypeAttaction = a; // pass 'a' around by assigning it to a field.

有很多方法可以做到这一点。

您还可以编程“给我最后创建的景点”,甚至“永远只有一个景点”,但这在这里听起来并不正确:您肯定计划拥有许多不同的景点,并且在一般来说,全局可变状态会导致意大利面条式代码难以调试并且容易失败。

关于Java 不使用参数调用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60693812/

相关文章:

java - 如何在不使用 setter 或公开变量的情况下将私有(private)类实例变量设置为解码器使用的 File 对象?

Java 的 RandomAccessFIle EOFException

java - 如何枚举哈希表的键和值?

javascript - 找不到创建命令行启动器 Intellij

java - 我如何在 JSP 页面中获取任何字符串值

java - 糖 ORM : How to display values

java - 使用 enum 处理整数事件类型

java - 用于单元测试的 Mockito 风格的 anyXXX 方法

java - 具有优先级的测试用例执行的 TestNG 顺序

java 。 GUI WindowBuilder 通过单击按钮将文本从 JTextField 打印到面板