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”