# Параметры методов

Как и другие языки 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"
    }
}
```

Вопрос 1

```
Как передать параметры  в метод main?
```
