Как работать через ArrayList со собственными классами?
Добрый день. Мой вопрос покажется нубским, однако, я только учу Java и, даже погуглив, ответа на свой вопрос не нашел. Прошу тапком не кидать.
Допустим, я написал свой класс Cat и добавил в него переменную name типа String. После этого, я создал ArrayList и добавил несколько объектов. Если бы у меня был обычный лист, то с помощью метода .get(), я бы мог спокойно обратиться и изменить значение переменной. Но что делать, если у меня в классе объявлена не только String name, а еще, допустим int age, как мне обратиться именно к конкретной переменной конкретного объекта cat. Если бы у меня был массив Cat[] cats, То я бы мог это сделать следующим образом:
cats[i].name = "имя";
А как мне обратиться в случае с ArrayList?
List<Cat> cats = new ArrayList();
//добавление котов
Cat cat = new Cat();
cats.add(cat);
//....
//получение кота по индексу
int i = 0;
Cat cat1 = cats.get(i);
//так лучше не делать
cat1.name = "имя";
//лучше написать методы setName(String name) для установки имени и getName() для его получения.
cat1.setName("новое имя");
как выше сказали, обращаться напрямую к полям - зло.
А выставить значение в одну строчку по примеру с массивом можно так: list.get(i).setName(newName);