На первый взгляд, метод fix
ничего не дает. Не копируйте этот метод.
Я полагаю, вы нашли этот класс в статье или Q & A, в которых говорится о Java семантике передачи параметров. Весь класс предназначен для демонстрации того, что Java параметры передаются по значению.
Если Java параметры были переданы по ссылке, то присвоение
q1 = true;
в fix
будет изменить переменную q1
, объявленную в beginning
. Это не так, и q1
, объявленный в beginning
, не изменяется.
Таким образом, реальная цель fix
в контексте состоит в том, чтобы продемонстрировать, что не не делай что-нибудь.
Это лучшая версия:
public class Example {
public static void main(String[]args) {
Example x = new Example();
x.beginning();
}
void beginning() {
boolean x1 = false;
boolean x2 = fix(x1);
System.out.println(x1 + " " + x2);
}
/**
* If Java is pass by reference, this will "fix" the variable
* 'x1' in the calling method.
*/
boolean fix(boolean q) {
q = true; // this would change 'x1'
return q;
}
}