Java 从另一个类访问创建的对象
家庭作业要求我将嵌套类与主类分开Java 从另一个类访问创建的对象,java,Java,家庭作业要求我将嵌套类与主类分开 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; /** This program di
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
This program displays the growth of an investment.
*/
public class InvestmentViewer2
{ public static void main(String[] args)
{
JFrame frame = new JFrame();
// The button to trigger the calculation
JButton button = new JButton("Add Interest");
// The application adds interest to this bank account
final BankAccount account = new BankAccount(INITIAL_BALANCE);
// The label for displaying the results
final JLabel label = new JLabel("balance: " + account.getBalance());
// The panel that holds the user interface components
JPanel panel = new JPanel();
panel.add(button);
panel.add(label);
frame.add(panel);
class AddInterestListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
double interest = account.getBalance()
* INTEREST_RATE / 100;
account.deposit(interest);
label.setText(
"balance: " + account.getBalance());
}
}
ActionListener listener = new AddInterestListener();
button.addActionListener(listener);
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private static final double INTEREST_RATE = 10;
private static final double INITIAL_BALANCE = 1000;
private static final int FRAME_WIDTH = 400;
private static final int FRAME_HEIGHT = 100;
}
我将AddInterestListener类从主类中取出,并将其放入一个新文件中。现在account.getBalance()不再工作了。我找不到如何让新类AddInterestListener以在主类中创建的account对象为目标
我还有一个简单的BankAccount类来创建对象。它有两个方法deposit(double x)和getBalance()
在作业问题上有一个提示:存储对的引用
银行账户。向设置引用的侦听器类添加构造函数
我不明白他们在说什么。我尝试过扩展这个类,然后使用super。您需要在AddInterestListener上创建一个构造函数,将Account对象作为参数传入,并将其存储在AddInterestListener类的字段中
public class AddInterestListener implements ActionListener {
private final Account account;
public AddInterestListener(final Account account) {
this.account = account;
}
public void actionPerformed(Event e) {
...
account.deposit(interest);
...
}
}
getBalance()
的方法在哪里?我在你们的课堂上什么地方都看不到。好吧,如果我让你们在课堂上“存储引用”,你们会怎么做?一步一步地分解需求,一步一步地处理。问题很可能是问题太简单,术语让你困惑。根据提示,他们说您的主类应该是一个监听器,并且它应该“存储对银行帐户的引用”,因此监听器应该有一行类似于“BankAccount BankAccount;”(这是一个引用),然后在监听器的构造函数中,它应该将BankAccount作为参数并将其保存为“BankAccount”