Object 面向编程:方法能力

Object oriented programming: Method Capabilities

我很抱歉,也许,再次重复同样的问题,但我迷路了,不知道该去哪里。经过大量谷歌搜索和 RTFMing 我能找到的所有方法后,我仍然找不到令我满意的答案。

Object 面向编程对我来说比较陌生(有几年过程编程的经验),而且没有一篇教程可以准确描述方法和 类 可以做什么。

例如:我有一个方法可以从 2 个 long 变量计算 bunch 结果;计算完成后,我希望我的程序采用另外两个变量,对它们做同样的事情,但将结果写在不同的变量中,这样我就可以获得第一次和第二次计算的结果。

我做了什么:我设置了一个 do while 循环,里面有很多案例。每个案例放置不同的变量用于计算,并且在计算之后,队列的变量执行一个步骤,因此循环将 运行 再次通过不同的案例。这就是我使用过程编程编写的方式

但是必须有一种方法可以更优雅地做到这一点,那就是使用方法。现在,主要问题是: 方法是否可以输出多个变量而无需编写用于将结果发送到已声明的占位符的代码位?调用的时候可以在你的方法中输入几个变量吗?这样做的语法是什么?

最后,有人可以告诉我在哪里可以找到好的 java 教程吗?我发现的所有内容要么把我当作 child 的自行车示例,要么充满了我还不了解的技术信息。

For example: I have a method that calculates a bunch of results from 2 long variables

听起来您应该将结果封装在一个新的 class 中,然后为两个输入使用方法参数。任何时候你有多个相关值,这至少是一个 提示 ,将它们捆绑在一起 class 可能是个好主意。

After calculation is done, I want my program to take two other variables, do the same thing with them but write the results in different variables, so I can have the result of first AND second calculation.

使用上述方法,这意味着再次调用该方法,传入两个不同的输入:

CalculationResult result1 = calculateResult(x1, x2);
CalculationResult result2 = calculateResult(y1, y2);

你可以在 Scala 中做类似元组的事情。我自己从未使用过它们,但它们应该很容易工作。

def compute(x: Long, y: Long) {
  return ("Hello", y + 100, x)
}

val(hello, yPlus100, x) values = compute(3123, 3123);
println(values.yPlus100) // 3223

虽然在 Java 中,最干净的方法是返回 class,我想,但是如果你有多个不同的,你必须为每个创建一个新的 class方法以不同方式返回多个值。

所以在 Java 中会是这样的:

public final class Tuple2<A, B> {

    public A a;
    public B b;

    public Tuple2(A a, B b) {
        this.a = a;
        this.b = b;
    }
}

然后可以像这样使用:

public Tuple2<Integer, String> compute() {
    return new Tuple2<>(5, "Hello");
}

Tuple2<Integer, String> values = compute();
System.put.println(values.b); // "Hello"