Я читала, что если в метод передать примитивный тип переменной, то она не поменяется, а если передаем ссылочный тип - тогда меняется, но код ниже не меняет переменные а и s. Почему? Или методы меняют только поля объекта? public class JavaSH_Recurc { public void change( Integer a,String s){ a = 9; s= "!!!"; } void qsort(char items [], Integer q, String s) { qs(items,0,items.length-1); q = 15; s = "Поменяли"; System.out.println(); } //private метод только там, где метод используется только в этом классе // и простые и ссылочные меняет??? private static void qs(char items [], int left, int right) { int i,j; char x,y; i = left; j = right; x = items[(left+right)/2]; do{ while ((items[i]<x)&&(i<right)) i++; while ((x<items[j])&&(j>left)) j--; if(i<=j){ y = items[i]; items[i]=items[j]; items[j]=y; i++;j--; } }while (i<=j); if(left<j) qs(items, left,j); if(i<right) qs(items, i,right); } } class SQDemo{ public static void main(String[] args) { //объвление в char - скобки //меняется, т.к массив - это ссылочный тип данных char a[]= { 'd','x','a','r','z'}; int i; // почему эти переменные не меняются??? Integer q=3; String s = "Ja"; System.out.println("Исходный массив");; for(i = 0;i<a.length;i++){ System.out.print(a[i] + " "); } System.out.println(q + s); System.out.println(); JavaSH_Recurc j = new JavaSH_Recurc(); j.qsort(a,q,s); j.change(q,s); /// for(int n = 0;n<a.length;n++){ System.out.print(a[n] + " "); } System.out.println("новая " +q +s); } }