我很抱歉,也许,再一次重复同样的问题,但我迷路了,不知道该往哪里去。经过大量的谷歌搜索和RTFMing我可以在方法上找到的一切我仍然找不到能满足我的答案。
面向对象编程对我来说相对较新(具有多年的过程编程经验),而且没有一个教程可以描述究竟什么方法和类可以做什么。
例如:我有一个方法可以计算来自2个长变量的结果的束;计算完成后,我希望我的程序采用其他两个变量,对它们执行相同的操作但是将结果写入不同的变量,因此我可以得到第一次和第二次计算的结果。
我做了什么:我设置了一个带有大量案例的do while循环。每个案例都有不同的变量用于计算,并且在计算之后,队列的变量执行一个步骤,因此循环将再次通过不同的情况运行。这就是我用程序编程编写的方法
但是必须有一种方法可以通过使用方法更优雅地做到这一点。现在,主要问题是: 方法是否可以输出多个变量而无需编写代码来将结果发送到已声明的占位符?当你调用它时,你能在方法中输入几个变量吗?这样做的语法是什么?
最后,有人可以给我一个关于在哪里找到一个好的java教程的指针吗?我发现的所有东西要么像对待自行车的孩子一样对待我,要么充满了我还不了解的技术信息。
答案 0 :(得分:3)
例如:我有一个方法可以计算来自2个长变量的一堆结果
听起来你应该将结果封装在一个新类中,并使用方法参数进行两个输入。任何时候你有多个相关的值,至少一个提示将它们捆绑在一起可能是一个好主意。
计算完成后,我希望我的程序采用其他两个变量,对它们执行相同的操作,但将结果写入不同的变量,因此我可以得到第一次和第二次计算的结果。
使用上述方法,这只是意味着再次调用该方法,传递两个不同的输入:
CalculationResult result1 = calculateResult(x1, x2);
CalculationResult result2 = calculateResult(y1, y2);
答案 1 :(得分:0)
您可以在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中最干净的方法是做一个返回类,但我想,如果你有多个不同的方法以不同的方式返回多个值,你必须为每个方法创建一个新的类。
所以在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"