Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpObCp 27 of 147 menu
◀ ▶

Копирование ссылок на объекты в Java

При присваивании объекта другой переменной копируется не сам экземпляр, а ссылка на него. Обе переменные указывают на один объект в памяти:

class Post { public String title = ""; public String text = ""; }

Создадим запись, скопируем ссылку и сравним оба имени через ==:

Post post = new Post(); post.title = "News"; Post alias = post; System.out.println(post == alias);

Изменение поля по одной переменной видно и у второй - меняется общий объект:

Post post = new Post(); post.title = "News"; Post copy = post; copy.title = "Tips"; System.out.println(post.title); System.out.println(copy.title);

Так же ведут себя объекты внутри массива или списка: элемент хранит ссылку, и изменение полей объекта сохраняется для всех переменных с той же ссылкой:

import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<Post> posts = new ArrayList<>(); Post draft = new Post(); draft.text = "Work"; posts.add(draft); Post fromList = posts.get(0); fromList.text = "Done"; System.out.println(posts.get(0).text); } }

Создайте объект Employee и присвойте его переменной copy. Измените заголовок в copy. Выведите заголовок из исходной переменной.

Запишите объект Employee в элемент списка. Возьмите этот элемент в отдельную переменную, измените зарплату. Выведите зарплату из списка.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить