【问题标题】:Java application errors (non static variable / symbol errors )Java 应用程序错误(非静态变量/符号错误)
【发布时间】:2015-10-11 00:35:24
【问题描述】:
我正在写一个应用程序
我的大脑碰壁了,我不知道问题出在哪里。
我试过用谷歌搜索这个问题,但是在无数页之后它没有帮助。然后,我重新阅读了我正在阅读的书的整个章节。我找不到问题。请写出来告诉我问题,并解释为什么它是正确的。它应该取bank1 + depositAmount =一个数字的值,然后显示它。
从哪里开始?
代码:http://imgur.com/a/2H9W2
第 79、64 行
错误代码:不能从静态上下文中引用非静态变量
第 76、70 行
错误代码=缺少找不到银行家类型的符号方法 depositAmount2(double)location 变量bank1。
【问题讨论】:
标签:
variables
methods
static
double
【解决方案1】:
问题并没有看起来那么糟糕。
在第 64 行,您感到困惑,因为您有一个包含两个帐户的 Banker 类。银行 1 和银行 2。
在第 62 行,您创建了一个名为 bank1 的 Banker 类的新对象。
为避免混淆,我建议您将其命名为银行。 (没有 1)。
第 64 行
您正在尝试从不存在的对象中检索数据。
您可以通过 bank1.getbank2() 解决此问题
第 79 行也是如此。
第 70 行正在调用一个不存在的方法。
将其更改为bank1.deposit(depositAmount)
请注意,在第 70 行,您将方法命名为 deposit
第 76 行与第 70 行相同,您正在调用一个不存在的方法。
如果仍然没有意义,请告诉我,如果需要,我会用代码详细解释。
【解决方案2】:
错误信息有提示。您的主要功能是静态功能。您做的第一件事是创建了 bank1 对象。但后来你开始使用 bank2 对象而不进行初始化。你为什么不这样开始,这样代码看起来不那么混乱?:
Banker banker1= new Banker(50.0, 50.0);
稍后,您可以拨打banker1.getBank1()和banker1.getBank2()(注意:您拨打的bank2.getBank2()应该是bank1.getBank2())
还没有 depositAmount 函数。使用您已实施的 deposit1 和 deposit2 或更改名称。
【解决方案3】:
无论我能从你的代码图像中破译什么,都有两个错误。
你没有初始化 banker2 并试图初始化。
声明 bank2 与声明 bank1 的方式相似
Banker bank2=new Banker(0.00,50.00);
以上将解决第 64,79 行中的问题。
Banker 类中没有称为 depositAmount 的方法。
您必须改用方法 deposit()。这将解决其他问题。
关于 sum 的最终输出,您需要对类进行大量修改才能达到该结果。