Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
#1

Static поле у внутреннего класса - Программирование Android

12.11.2014, 18:03. Просмотров 396. Ответов 7
Метки нет (Все метки)

Есть класс, скажем Building, в нем есть еще один класс, скажем Floor. И вот этот Building хранит несколько экземпляров класса Floor. Что нужно - сделать переменную, скажем apartmentCount, которая будет одинакова у всех экземпляров класса Floor, находящихся в экземпляре класса Building. Но при этом у разных экземпляров класса Building это значение должно быть разным. Если сделать это поле static будет ли оно одинаково у всех экземпляров класса Building, либо будет одинаковым только внутри одного экземпляра этого класса?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimirys
303 / 200 / 22
Регистрация: 16.01.2010
Сообщений: 567
12.11.2014, 18:24     Static поле у внутреннего класса #2
static - это будет по сути - глобальная переменная. В принципе, она может быть доступна в другом классе. Но только, через такую конструкцию - имя_класса.статическая переменная.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
12.11.2014, 18:27  [ТС]     Static поле у внутреннего класса #3
Vladimirys, это понятно интересует именно у внутреннего класса поведение. Будет ли на каждый экземпляр родительского класса создаваться новая запись в памяти или одна на все?
Vladimirys
303 / 200 / 22
Регистрация: 16.01.2010
Сообщений: 567
12.11.2014, 18:37     Static поле у внутреннего класса #4
Если я, правильно понял что вы имеете ввиду. При объявлении объекта - копий статических переменных не создается. Все экземпляры класса, используют одну и туже переменную.
На то она и статическая, существует без объектов и без ссылок на объекты.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
12.11.2014, 18:43  [ТС]     Static поле у внутреннего класса #5
В обычном случае так. Но класс1 содержит класс2. Класс 2 содержит статическую переменную. Создаем экземпляры класса1 : экз1 и экз2. Будет ли у них одно поле из внутреннего класса на двоих или у каждого свое?
Vladimirys
303 / 200 / 22
Регистрация: 16.01.2010
Сообщений: 567
12.11.2014, 19:11     Static поле у внутреннего класса #6
ИМХО. Все равно не вижу проблемы. Нет объектов - нет проблем. Но я так с внутренними классами особо не сталкивался. Стараюсь избегать "излишней вложенности"
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
12.11.2014, 19:25  [ТС]     Static поле у внутреннего класса #7
А как тогда реализовать подобное? Не хочется в родительском классе добавлять переменную. Потом в методы нужно будет посылать экземпляр дочернего класса + эту переменную. Не люблю когда много параметров нужно передавать)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2014, 15:01     Static поле у внутреннего класса
Еще ссылки по теме:
Сделать копию static объекта Android
Android Singleton или класс с полями static?
Android Как вызвать postInvalidate() из static метода?
Где хранятся static переменные метода в java Android
Класс: Хочу из класса WorkFiles получить доступ к функционалу класса WorkDB. Android

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

Или воспользуйтесь поиском по форуму:
Vladimirys
303 / 200 / 22
Регистрация: 16.01.2010
Сообщений: 567
14.11.2014, 15:01     Static поле у внутреннего класса #8
Опять же ИМХО, как собрались реализовать, так и делайте. Тут нельзя сказать однозначно. По мне, так ничего такого передал параметром, и все, они собственно для этого и есть. Некоторые, к примеру, прям готовы жизнь положить, в борьбе со статическими переменными. Прям зло и все, и без вариантов.
Yandex
Объявления
14.11.2014, 15:01     Static поле у внутреннего класса
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru