java - 如何从 java 中的另一个方法正确引用变量?
问题描述
我不知道我应该如何引用 .toString() 方法中的变量。我一直在想办法做到这一点。它是公开的,所以我不明白为什么不共享它。导入 java.util.Scanner;
class Donation {
public static void main(String[] args) {
Donation uw1 = new Donation("University of Washington", 600.75, true);
Donation uw2 = new Donation("University of Washington", 40, true);
Donation sj = new Donation("Snap Judgment", 30, false);
Donation tal = new Donation("This American Life", 40, true);
Donation mc = new Donation("Microphone Check", 99.99, false);
System.out.println(uw1.toString());
System.out.println(uw2.toString());
System.out.println(sj.toString());
System.out.println(tal.toString());
System.out.println(mc.toString());
}
public Donation(String organization, double amount, boolean tax) {
double v= amount;
String org = organization;
boolean b= tax;
}
public String toString(){
if (!v){
return "$"+v+": "+org;
}
else if (b) {
return "* $" + v + ": " + org;
}
else{
return "error";
}
}
解决方案
您在构造函数中设置局部变量:
public Donation(String organization, double amount, boolean tax) {
double v= amount;
String org = organization;
boolean b= tax;
}
你知道吗,因为这些变量只存在于构造函数中,一旦构造函数结束,变量就会随之消失,这就是你问题的症结所在。相反,在构造函数之外和类中声明这些变量。
public class Donation {
private double v;
private String org;
private boolean b;
然后是的,在构造函数中设置字段,但不要重新声明它们。
public Donation(String organization, double amount, boolean tax) {
v= amount;
org = organization;
b= tax;
}
然后,您可以在 toString 方法中使用这些字段保存的值。
推荐阅读
- google-sheets - 谷歌表格汇总多列
- html - When select dropdown directive for submit on press 'Enter' no more work
- javascript - 如何删除事件处理程序的绑定版本?
- qml - 如何在 QML 中检测双指双击?
- nestjs - 如何使用@nestjs/terminus 为 Prisma 创建自定义健康检查?
- plugins - 如何不加载图表之前的数据?
- prolog - 毕达哥拉斯定理用于计算两点之间的距离。序言
- flutter - 自定义方案未调用 webview_flutter navigationDelegate
- python - 安装 trimmomatic 时出现 Anaconda CondaVerificationError
- java - 插件 jsonschema2pojo:属性按要求显示,但它们应该是可选的