Как и другие языки Java поддерживает передачу параметров по значению и по ссылке.
Рассмотрим передачу параметра по значению. Когда мы в вызываемом методе изменяем значение переменной, то во внешнем блоке значение переменной не изменяется.
Пример:
private void ChangeVariables(int a, int b){
a = a + 1;
b += 1;
}
int a = 10;
int b = 20;
JOptionPane.showMessageDialog(null, "a = " + a + " b = " + b);
ChangeVariables(a, b);
JOptionPane.showMessageDialog(null, "a = " + a + " b = " + b);
Передача параметра по ссылке.
class StringClass {
public String str = "Initial string";
}
public class TestClass {
public static void changeIt(StringClass sc, String stroka) {
sc.str = "Changed string";
string = "Changed string";
}
public static void main(String[] args) {
String string = "Initial string";
MyClass sc = new MyClass();
System.out.println(sc.str);
System.out.println(string);
System.out.println();
changeIt(sc, stroka);
System.out.println(sc.str); // Output: "Changed string"
System.out.println(string); // Output: "Initial string"
}
}