public class Main { public static void main(String[] args) { Cat cat = new Cat(); System.out.println(cat.name); changeName(cat); System.out.println(cat.name); } public static void changeName(Cat cat) { cat.name = "Jerry"; } public static class Cat { String name = "Tom"; } } Вывод: Tom Jerry Объясните как это работает? public static void changeName(Cat cat) { cat.name = "Jerry"; - понял что void значение не возвращает, но почему меняются местами значения "Jerry" и "Tom" на "Tom" и "Jerry" не понятно)