我有两个班级:
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)格式,我可以在其中分配值但不能正常运行。有人可以帮帮我吗?
答案 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();
答案 2 :(得分:0)
你做不到。局部变量(函数内定义的变量)的范围仅限于此函数(此处为Main,注意:实践以函数名称的小写字符开头)。
如果你想从外面访问一些变量,它需要是类变量,你声明函数来访问它(setN / getN或类似的......)
此外,由于函数是静态的,变量也需要是静态的。
希望有所帮助
答案 3 :(得分:0)
您可以这样做,或者您可以创建AdjacencyList的新实例并在构造函数中设置n。然后使用get()函数访问n。
答案 4 :(得分:0)
添加到n的第二个类公共setter,然后在main中创建一个AjacencyList实例并调用setter。