说明:s 是我定义的一个外部类
问题:这个程序运行出错,原因是类 A 不能访问局部变量 stk,怎么样定义可以让 类A访问局部变量 stk 呢?希望诸位大虾能够帮帮忙,小弟感激不尽!
class stack
{
public static void main(String arg[])
{
s stk=new s(10);
class A
{
//stk st=new stk();
void in()
{
for(int i=0;i<10;i++)
{
stk.push((char)('A'+i));
}
}
void out()
{
for(int i=0;i<10;i++)
{
char ch;
ch=stk.pop();
if(ch!=st.m)
{
            System.out.println(ch);
}
}
}
}

解决方案 »

  1.   

    main方法是个静态方法,只能访问该类中的类变量,就连该类中的对象变量都不能访问,就更别说是其他类中的变量了!!!!
      

  2.   

    想重复使用 
    for(int i=0;i<10;i++)
    {
    char ch;
    ch=stk.pop();
    if(ch!=st.m)
    {
                System.out.println(ch);
    }
    所以在main()中写了一个嵌套类 A,把上面的语句写成一个方法,以后使用引用就可以了,对java 中main() 的方法理解不大深刻,书里说的不是很详细,希望各位指点一下
      

  3.   

    代码有些乱“s stk=new s(10);”这是什么class?????
      

  4.   

    s 是我定义的一个外部类
    在方法中可以定义和访问内部类的,可以详细点解释一下main()的用法吗,比如其中的嵌套类和内部类,以及这些类能不能访问main()中的局部变量,怎么样访问?
      

  5.   

    用final修饰一下,应该就可以了.试一试
      

  6.   

    s stk=new s(10);
    改成final s stk=new s(10);
    就可以了