我想在A.java中添加两个数字并将结果打印在B.java中(How?)
class A {
public static void main(String args[]) {
int x= 5;
int y = 8;
}
void Sum() {
z = x+y;
}
}
class B {
A obj = new A();
System.out.println("Result= "A.Sum());
}
我无法解决这个问题。 请帮我 .. 先感谢您。
答案 0 :(得分:2)
你想要更像这样的东西:
A.java
class A {
int x;
int y;
public A (int x, int y) {
this.x = x;
this.y = y
}
public int sum() {
return x + y;
}
}
B.java
class B {
public static void main(String[] args) {
A obj = new A(5, 8);
System.out.println("Result=" + obj.sum());
}
}
由于您正在实例化A
,因此它不需要main
它需要构造函数来设置值。它不需要像我编写的那样获取参数,如果你愿意,你可以在构造函数中将它们设置为一些硬编码值。 B
需要一个main
方法,就像我假设你要运行它一样?如果没有,您可以将其更改为要从其他位置调用的构造函数。
答案 1 :(得分:1)
对于许多新手而言,这实际上是一个难以理解的概念。当你说new SomeClass()
时,你会创建一个"实例"该课程,并返回"参考"可以使用该实例,因为它可以处理"处理"从一个地方到另一个地方的访问。
所以,在A' main
你可以做
A a = new A();
B b = new B();
b.doSomething(a);
在B中你可能有一个方法
public void doSomething(A aRef) {
int result = aRef.sum();
System.out.println("The answer is " + result);
}
然后回到A,sum
方法
public int sum() {
return x + y;
}
但我们尚未定义或给定x和y的值,所以首先在A中插入声明,在任何方法之外(通常在第一种方法之前) -
int x;
int y;
你可以在那里分配他们的价值观,但它更多"现实"动态分配它们。在main
后,在new A
之后但在致电doSomething
a.x = 5;
a.y = 8;
请注意,您必须提供a.
,因为main
是静态的,因此没有实例变量的自动寻址能力。
答案 2 :(得分:0)
这里有很多错误。以下是带有注释的更正后的A类:
class A {
int x= 5; //x and y must be declared here, as instance variables (not local variables in main)
int y = 8;
public static void main(String args[]) { //you don't need a main method here
}
public int Sum() { //you need to return an int here
return(x+y);
}
}
以下是更正的B类:
class B {
public static void main(String[] args) {
A obj = new A(); //these two statements must be inside main()
//if you want them to execute
System.out.println("Result= " + obj.Sum()); //use the object you created
//to call Sum()
}
}
答案 3 :(得分:0)
您的代码有两个主要问题
1)在B类中,你实例化了A类的obj,然后使用了类A.Sum()
这应该是
A obj = new A();
System.out.println("Result= " + obj.Sum());
2)在A类中,主方法中有变量x
和y
(未使用)。这些必须是类变量
public class A{
int x= 5;
int y = 8;
public void Sum()
}
此外,这些类的范围可能需要公开
答案 4 :(得分:0)
基本上你可以像这样解决OOP中的问题
A.java
public class A {
public static void main(String args[]) {
new B().print();
}
public static int sum(int... values) {
int total=0;
for(int num: values){
total+=num;
}
return total;
}
}
B.java
public class B {
public void print(){
System.out.println("Result= "+A.sum(4,2));
}
}