java不对dfs多传一个参数,能解决主函数的n传不到dfs里面的问题吗?

import java.util.*;
public class dfsFirst {
static boolean []v=new boolean[1005];
static int []a=new int [1005];
static int n;
static public void dfs(int c)
{
if(c==n)
{System.out.print(a[0]+" ");
for(int i=1;i<n;i++)
System.out.print(a[i]+" ");
System.out.println();
}
else
{
for(int i=1;i<=n;i++)
{
if(!v[i])
{v[i]=true;
a[c]=i;
dfs(c+1);
v[i]=false;
}
}
}
}

public static void main(String[] args) {
    // TODO Auto-generated method stub

Scanner sc=new Scanner(System.in);

    while(true)
    {dfsFirst dfs=new dfsFirst();
        int n=sc.nextInt();
        System.out.println(n);
        Arrays.fill(v, false);
        Arrays.fill(a, 0);

        dfsFirst.dfs(0);
    }
}

}

主函数的n传不到dfs里面怎么办

dfsFirst.dfs(0);因为你写了这个,不管你输入什么。不还是一直在传0过去么。