Бесплатный курс по Java: от основ до продвинутого уровня
Передача в метод ссылочных типов и типов значений
Рассмотрим передачу ссылочного типа в метод и передачу типа значения в метод.
Для начала передадим в метод тип значения.
public class LinkValInMethodExample {
// Определим метод, в который передается числовой параметр,
// к которому будет прибавляться единица.
static void doStuff(int y) {
y = y + 1;
}
public static void main(String[] args) {
// Сначала передадим в метод тип значения
int x = 5;
doStuff(x); // Когда мы передаем тип значения в метод doStuff,
// мы передаем не саму переменную x, а ее КОПИЮ.
System.out.println(x); // Поэтому x все еще равно 5, а не 6,
// так как в методе doStuff происходили действия не с самой x,
// а с ее копией.
}
}
Вывод:
Теперь передадим в метод объект ссылочного типа и изменим его в этом методе.
//Создадим простейший класс для демонстрации
//передачи в метод ссылки на объект.
class Animal {
public String eats;
public int noOfLegs;
}
public class LinkValInMethodExample {
//Определим метод, в который передаётся объект
//и в нем он меняется. (Точнее передаётся ссылка на объект).
static void doStuff(Animal Y) {
Y.eats = “grass”;
Y.noOfLegs = 4;
}
public static void main(String[] args) {
//Теперь же когда мы передаем ссылочный тип
//мы передаем в метод ссылку на объект, который
//мы создали строчкой кода ниже и через эту ссылку
//метод работает с этим созданным объектом
Animal x = new Animal();
x.eats = “meat”;
x.noOfLegs = 2;
doStuff(x); // Передаем копию ссылки (правильно говорить:
// мы передаем копию ссылки, то есть мы передаем не саму ссылку x,
// а ее копию. То есть когда мы в метод передаем x, то создается
// новая ссылка, которая ссылается на тот же объект, что и x,
// и через нее уже работает метод с данным объектом.
// На созданный объект, который содержит
// два поля со значениями “meat” и 2,
// метод doStuff использует её и может изменять объект
// прямо в методе.
System.out.println(x.eats);
System.out.println(x.noOfLegs);
// Как можно увидеть в консоли: x.eats = “grass”, а x.noOfLegs = 4,
// так как в методе происходила
// работа с объектом через копию ссылки x.
}
}
Узнайте, что такое аннотации в Java на примерах @Override, @Deprecated и @FunctionalInterface. Создавайте собственные аннотации с @interface для управления кодом.
Time to read: 12
Обработка исключений
Освойте обработку исключений в Java: try-catch-finally, throw и throws. Узнайте, как предотвратить аварийное завершение программы при ошибках.
Time to read: 10
Generics в Java
Изучите Generics в Java: создавайте универсальные классы с параметризованными типами. Примеры использования Generics для гибкости кода и типобезопасности.