0
MyStack()
{
    Vector<Integer> v=new Vector<Integer>(10,2);
}

void push(int n)
{
    v.addElement(n);
}

void pop()
{
    if(v.isEmpty())
        System.out.println("Stack underflow!");
    else
        System.out.println(v.elementAt(0));
}

void display()
{
    for(int i=0;i<v.size();i++)
        System.out.print(v.elementAt(i) +" ");
}

}

class StackDemo
{
    public static void main(String args[])
    {
        Scanner in=new Scanner(System.in);
        MyStack s=new MyStack();
        int option=0;
        do
        {
            System.out.println("1: Push\n2:Pop\n3:Display\n4:Quit");
            System.out.println("Enter your option: ");
            option=in.nextInt();
            switch(option)
            {
                case 1:
                {
                System.out.println("Enter an integer:");
                int n=in.nextInt();
                s.push(n);break;
                }

                case 2:s.pop();break;

                case 3:s.display();break;

            }

        }

    while(option!=4);

    }

}

//エラーをスローします:変数vが見つかりません。どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

2

vクラスのメンバーとしてではなく、コンストラクターでローカルに作成されているようです。

クラスメンバーとして定義vしてから、コンストラクターで割り当ててみてください。

class MyStack {
    Vector<Integer> v;

    public MyStack() {
        v = new Vector<Integer>(10,2);
    }
}

または、定義するときに割り当てるだけです。

class MyStack {
    Vector<Integer> v = new Vector<Integer>(10,2);
}

クラスメンバーに関するJavaチュートリアルを確認してください。

于 2012-09-04T19:48:12.347 に答える