java中两个不同类之间的调用参数
我有两个类(在不同的文件中)和一个主类。我想在其他方法中使用它们的方法和参数(如int),但当我将它们创建为新的时,我遇到了java中两个不同类之间的调用参数,java,Java,我有两个类(在不同的文件中)和一个主类。我想在其他方法中使用它们的方法和参数(如int),但当我将它们创建为新的时,我遇到了“java.lang.StackOverflowerError”。 我的目的: Main>create class1>转到class1,将int发送到class2>做某事,并将结果作为int返回给class1,然后打印结果 public class Class1 { Class2 class2=new Class2(); protected int b=4
“java.lang.StackOverflowerError”。
我的目的:
Main>create class1>转到class1,将int发送到class2>做某事,并将结果作为int返回给class1
,然后打印结果
public class Class1 {
Class2 class2=new Class2();
protected int b=4;
public void start (int c)
{
class2.run(b);
System.out.println("Numbber :"+c);
}
}
public class Class2 {
Class1 class1 = new Class1();
protected int a=5;
public void run(int b) {
int c=b+10+a;
class1.start(c);
}
}
public class Main {
public static void main(String[] args) {
Class1 class1 = new Class1();
class1.start(1);
//enter code here
}
}
在Class2的方法
run
和Class1的方法start
之间有循环引用。你的run
方法调用start
,调用run
,调用start
,调用
我的目的:Main>createclass1>gotoclass1并将int发送给class2>dosth并将结果作为int返回给class1,然后打印结果
public class Class1 {
Class2 class2=new Class2();
protected int b=4;
public void start (int c)
{
class2.run(b);
System.out.println("Numbber :"+c);
}
}
public class Class2 {
Class1 class1 = new Class1();
protected int a=5;
public void run(int b) {
int c=b+10+a;
class1.start(c);
}
}
public class Main {
public static void main(String[] args) {
Class1 class1 = new Class1();
class1.start(1);
//enter code here
}
}
如果这是您的目的,只需创建一个方法来执行您想要的操作,然后返回结果:
public int foo(int b) {
return b+10+a;
}
这样,您的start
方法将调用foo()
并执行必要的计算,然后返回结果,而不是再次调用该方法。但是Java是按值传递的,因此必须将foo()
的结果解析为变量。但是,您只需打印结果即可:
public void start (int c)
{
System.out.println("Number :"+ class2.foo(b));
}
您在这里有循环引用,并调用run
callsstart
及其周围。run
callsstart
哪些调用run
哪些调用run
哪些调用run
哪些调用start
哪些调用run
调用start
哪个调用run
哪个调用start
哪个调用run
哪个调用run
哪个调用start
哪个调用run
哪个调用run
哪个调用start
哪个调用run
哪个调用run
哪个调用start
哪个调用调用run
callsstart
哪个调用run
哪个调用run
哪个调用start
哪个调用run
哪个调用run
哪个调用run
哪个调用run
哪个调用run
哪个调用start
run
调用start
调用…@gblodget进行演示。