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());