我不知道这叫什么

时间:2016-09-08 17:28:34

标签: java

我有两个班级

的Class1:

public class Class1 {

        public static void main(String[] args) {
            Class2 classObject = new Class2();
            classObject.add(2, 3);
            classObject.print();
        }
    }

和Class2:

public class Class2 {

    public int add(int a, int b) {
        int n = a + b;
        return n;
    }

    public void print() {
        System.out.println(add(2,3));
    }
}

我想使用print方法打印出add方法中返回的内容.add方法从classObject中获取其信息,如Class1中所示。

我知道有不同的方法可以做到这一点,但我很确定有一种方法可以按我想要的方式去做,我只是无法弄清楚如何。

在我调用add方法的print方法的Class2中,我在那里放了任意数字。我想要做的是以某种方式从classObject.add(int,int)中提取数字并打印返回的整数n

2 个答案:

答案 0 :(得分:1)

如果您要展示的是显示带状态的对象,也许您的意思是这样的:

public class Class2 {
    int n;

    public void add(int a, int b) {
        n = a + b;
        return n;
    }

    public void print() {
        System.out.println(n);
    }
}

这样Object1永远不会知道Object2的内部,它确实是一个非常好的抽象。

答案 1 :(得分:0)

您只需更改打印方法的签名,如下所示。像print这样的方法是需要输入的处理方法,你可以将它作为方法参数传递。

public int print( int a) {
    System.out.println(a);
}

现在你需要进行如下的简单调用。

classObject.print(classObject.add(2,3));

您不应该在print方法中调用add方法。根据名称,接缝印刷是一种通用方法。您应该将输入作为方法参数传递,它应该负责打印输入。

如果您希望打印方法只是打印添加,那么您可以将两个数字作为输入参数传递给方法打印,也可以更改方法名称,如下所示。您需要从print(修改版本)内部调用方法add。在这种情况下,您应该隐藏方法add并将其设为私有。

public int printTheAddition(int n, int m){
    return add(n,m);
}

在这种情况下,只需使用两个输入参数调用printTheAddition方法。