问题描述
- Java编程中A类如何调用B类中M方法里的C类的实例?
-
import java.awt.*; import java.awt.event.*; public class TestListener{ public static void main(String[] args){ Counter c1 = new Counter("Hello"); c1.CreatButton(); c1.add(c1.button); ----------------------------(1) c1.setLocation(100,100); c1.setSize(100,100); c1.setVisible(true); } } class Counter extends Frame{ public int count = 0; **final Button button = new Button("0");--------(2) Counter(String label){ super(label); } void CreatButton(){ **//final Button button = new Button("0");----------(3) button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt){ count = Integer.parseInt(button.getLabel()); button.setLabel(Integer.toString(++count)); } }); } }
像上述程序,目前是可以编译通过并运行的,如果我把(2)处的屏蔽掉,(3)处的用起来,那在(1)处应该如何写?
也就是题目中提到的如何调用方法中局部内部类的实例?请教各位~
解决方案
不可以把,button不是局部变量嘛,怎么能够在外部调用呢
解决方案二:
button 放在方法里面,但是方法里面并没有返回值,如果一定要这样的话方法可以这样写
public Button createButton(){
...
return new Button("0");
}
解决方案三:
当然可以了
public Button createButton()
是return 一个指针( pointer ) 指着你的那个局部变量呢
1 处,c1.add(c1.createButton());
时间: 2024-12-31 02:52:13