从其他类访问Main方法中的变量

时间:2013-11-24 19:10:40

标签: java main-method

我有两个班级:

public class node {
  static LinkedList<Integer> nodes = new LinkedList<Integer>();
  public boolean visited;

  public static void Main (String args []) {
    System.out.println("Number of nodes in network");
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();

    for (int i=1;i<=n;i++){
      nodes.add(i);
    }

    System.out.println(nodes);
  }

和另一个班级

public class AdjacencyList {
  private int n;
  private int density;

我想从int n方法访问Main,并将其值分配给private int n类中的AdjacencyList。我在一个方法中尝试了node.n(class.variable)格式,我可以在其中分配值但不能正常运行。有人可以帮帮我吗?

5 个答案:

答案 0 :(得分:5)

更改为

public static int n;

然后你可以在任何地方访问..

AdjacencyList.n

答案 1 :(得分:2)

简单地说,

public class AdjacencyList {
    private int n;
    private int density;

    //method to get value of n
    public int getN() { return this.n; }

    //method to set n to new value
    public void setN(final int n) { this.n = n; }

然后,在你的main()中,你可以这样做:

AdjacencyList myList = new AdjacencyList();

//set n to any value, here 10
myList.setN(10);

//get n's current value
int currentN = myList.getN();

所有这些都是基本的java内容,请再次浏览文档,尤其是herehere

答案 2 :(得分:0)

你做不到。局部变量(函数内定义的变量)的范围仅限于此函数(此处为Main,注意:实践以函数名称的小写字符开头)。

如果你想从外面访问一些变量,它需要是类变量,你声明函数来访问它(setN / getN或类似的......)

此外,由于函数是静态的,变量也需要是静态的。

希望有所帮助

答案 3 :(得分:0)

您可以这样做,或者您可以创建AdjacencyList的新实例并在构造函数中设置n。然后使用get()函数访问n。

答案 4 :(得分:0)

添加到n的第二个类公共setter,然后在main中创建一个AjacencyList实例并调用setter。