Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 59
1

Immutable class

10.08.2018, 11:15. Показов 859. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день я извиняюсь конечно за глупые возможно вопросы. Но не могу понять а может кто то подкинет хороший пример по этому поводу. Я знаю что Классы обвертки типа Integer и.т.п immutable то есть ссылка на объекты не изменяться. То есть если происходит какая то арифметическая операция и.т.п создается новый объект . Так вопрос Можно пример где будет видно что ссылка не изменить после манипуляций с объектом. Либо кто то поподробнее мне сможет объяснить. Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2018, 11:15
Ответы с готовыми решениями:

why String immutable?
Вопрос по сабжу, все же почему? Как вы знаете в С++ этой штуки, как неизменяемость, нету, зачем...

Задача: реализовать наследование: interface Сотрудник - class Инженер - class Руководитель.
Помогите решить задачу и объяснить. В Eclipse. Реализовать наследование: interface Сотрудник...

Задача: реализовать наследование: interface Сотрудник - class Инженер - class Руководитель. В Eclipse.
Помогите решить задачу и объяснить. В Eclipse. Реализовать наследование: interface Сотрудник...

Что такое String.class, JButton.class?
Здравствуйте Бывают встречаю такие вещи: String.class, JButton.class. Обычно вижу это в качестве...

7
37 / 35 / 9
Регистрация: 13.02.2017
Сообщений: 205
10.08.2018, 11:25 2
Цитата Сообщение от AD86 Посмотреть сообщение
Так вопрос Можно пример где будет видно что ссылка не изменить после манипуляций с объектом. Либо кто то поподробнее мне сможет объяснить. Заранее спасибо
А можно чуть более по русски? Непонятно, что нужно.
0
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
10.08.2018, 11:27 3
Вот здесь есть достаточно простые примеры реализаций изменяемых и неизменяемых обектов: https://www.cyberforum.ru/blog... g5096.html
0
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 59
10.08.2018, 11:31  [ТС] 4
Я хочу пару примеров что классы обвертки являются Immutable
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
10.08.2018, 11:43 5
AD86,
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class MyClass {
    public static void main(String args[]) {
        Integer i = 10;
        System.out.println("begin i = "+i);
        call(i);
        System.out.println("end i = "+i);
        //----------------------
        Int j = new Int(20);
        System.out.println("begin j = "+j.i);
        callInt(j);
        System.out.println("end j = "+j.i);
    }
    private static Integer call(Integer i) {
        System.out.println("before i++, i = "+i);
        i++;
        System.out.println("after i++, i = "+i);
        return i;
    }
    private static Int callInt(Int j) {
        System.out.println("before j++, j.i = "+j.i);
        j.i++;
        System.out.println("after j++, j.i = "+j.i);
        return j;
    }
    private static class Int {
        public int i;
        public Int(int i) {
            this.i = i;
        }
    }
}


Вывод :
Кликните здесь для просмотра всего текста
begin i = 10
before i++, i = 10
after i++, i = 11
end i = 10
begin j = 20
before j++, j.i = 20
after j++, j.i = 21
end j = 21

Обратите внимание на end i, end j.
0
Автоматизируй это!
Эксперт Python
7107 / 4610 / 1215
Регистрация: 30.03.2015
Сообщений: 13,236
Записей в блоге: 29
10.08.2018, 11:45 6
Цитата Сообщение от AD86 Посмотреть сообщение
обвертки


не смог понять твое описание темы. Посмотреть как работает иммьютабл и вообще что угодно можно в дебаггере, там отлично видно как меняется ссылка.
вот! https://www.cyberforum.ru/java/thread2250765.html
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
10.08.2018, 13:10 7
Цитата Сообщение от AD86 Посмотреть сообщение
Я хочу пару примеров что классы обвертки являются Immutable
Копилируете код в версию java 1.4 или ранее. Дело в том, что начиная с java добавили autoboxing/-unboxing. Именно поэтому Вы не замечаете, что классы-обертки immutable. Можете почитать статью на эту тему.

Для примера в java 5 можно делать так:
Java
1
2
Integer i = 10;
i = i + 20;
До java 5 код выше не скомпилируется. Возникнет ошибка incompatible types: int cannot be converted to java.lang.Integer. Приходилось писать:
Java
1
2
Integer i = new Integer(10);
i = new Integer(i.intValue() + 20);    //вот тут как раз видно, что необходимо создавать новый объект
1
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
10.08.2018, 14:01 8
Цитата Сообщение от AD86 Посмотреть сообщение
какая то арифметическая операция
Java
1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) {
       Integer integer1 = 5;
       Integer integer2 = integer1;
       if (Objects.equals(integer1,integer2))
           System.out.println("Ссылки указывают на один объект!");
       integer1++;
       integer1--;
       if (Objects.equals(integer1,integer2))
            System.out.println("Ссылки указывают на разные объекты!");
    }
0
10.08.2018, 14:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.08.2018, 14:01
Помогаю со студенческими работами здесь

Ошибка: cannot find symbol symbol: class toString location: class java.util.Date
import java.util.Date; import java.lang.String; import java.io.*; public class Sword { ...

bad class file: C:Program FilesJavajre1.5.0_02lib t.jar(java/lang/Object.class) class file has wrong version 49.0, should be 48.0
написал тестовый td_jsp.jsp фаил ->> <html> <head><title>JSP test</title></head> ...

Возможно ли такое:class Loading { ... class ListTest { } ... }
Я только еще знакомлюсь с JAVA, но уже пытаюсь решить сложную задачу. При открытии формы...

Когда использовать [Class] и Hash[Class] ?
Начал изучать Java и почему-то не получается до сих пор понять, почему в некоторых примерах...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru