我想在A.java中添加两个数字并在B.java中打印结果(如何?)

时间:2014-07-16 00:10:33

标签: java object

我想在A.java中添加两个数字并将结果打印在B.java中(How?)

A.java

class A {
   public static void main(String args[]) {
       int x= 5;
       int y = 8; 
   }

    void Sum() {
        z = x+y;
    }
}

B.java

class B {
    A obj = new A();
    System.out.println("Result= "A.Sum());
}

我无法解决这个问题。 请帮我 .. 先感谢您。

5 个答案:

答案 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类中,主方法中有变量xy(未使用)。这些必须是类变量

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));
    }
}