Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

Есть класс, скажем Building, в нем есть еще один класс, скажем Floor. И вот этот Building хранит несколько экземпляров класса Floor. Что нужно - сделать переменную, скажем apartmentCount, которая будет одинакова у всех экземпляров класса Floor, находящихся в экземпляре класса Building. Но при этом у разных экземпляров класса Building это значение должно быть разным. Если сделать это поле static будет ли оно одинаково у всех экземпляров класса Building, либо будет одинаковым только внутри одного экземпляра этого класса?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2014, 18:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Static поле у внутреннего класса (Программирование Android):

Ссылка на экземпляр объекта внутреннего класса - Программирование Android
Интересная вещь-если написать внутренний класс, например, DrawView, создать его в onCreate MainActivity, а потом, используя ссылку на него...

Реализация слушателя в виде анонимного внутреннего класса - Программирование Android
Здравствуйте. Я новичёк в Андройде. Начал своё изучение с книги "Программирование под андройд" авторов Брайана Харди, Билли Филлипса. Я...

Получить значение non-static переменной из другого класса - Программирование Android
Вопрос конечно дурацкий. Но долго искал ответ и так и не нашел. Имеется класс с нестатической переменной: public class MyService {...

Static MediaPlayer - Программирование Android
Добрый день! Пытался реализовать следующий алгоритм работы своего приложения: Пользователь кликая по изображению открывает новый...

BroadcastReceiver + static переменная - Программирование Android
Работая с бродкаст ресивером задался вопросом, как же он всё-таки работает?) Есть следующий код, который фиксирует состояние телефонного...

Сделать копию static объекта - Программирование Android
Здравствуйте. Есть static класс Utils - работает с ArrayList(добавляет элементы, удаляет, выдает нужный по определенным критериям). Есть...

7
Vladimirys
312 / 209 / 26
Регистрация: 16.01.2010
Сообщений: 608
12.11.2014, 18:24 #2
static - это будет по сути - глобальная переменная. В принципе, она может быть доступна в другом классе. Но только, через такую конструкцию - имя_класса.статическая переменная.
0
Spelcrawler
531 / 501 / 111
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
12.11.2014, 18:27  [ТС] #3
Vladimirys, это понятно интересует именно у внутреннего класса поведение. Будет ли на каждый экземпляр родительского класса создаваться новая запись в памяти или одна на все?
0
Vladimirys
312 / 209 / 26
Регистрация: 16.01.2010
Сообщений: 608
12.11.2014, 18:37 #4
Если я, правильно понял что вы имеете ввиду. При объявлении объекта - копий статических переменных не создается. Все экземпляры класса, используют одну и туже переменную.
На то она и статическая, существует без объектов и без ссылок на объекты.
0
Spelcrawler
531 / 501 / 111
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
12.11.2014, 18:43  [ТС] #5
В обычном случае так. Но класс1 содержит класс2. Класс 2 содержит статическую переменную. Создаем экземпляры класса1 : экз1 и экз2. Будет ли у них одно поле из внутреннего класса на двоих или у каждого свое?
0
Vladimirys
312 / 209 / 26
Регистрация: 16.01.2010
Сообщений: 608
12.11.2014, 19:11 #6
ИМХО. Все равно не вижу проблемы. Нет объектов - нет проблем. Но я так с внутренними классами особо не сталкивался. Стараюсь избегать "излишней вложенности"
1
Spelcrawler
531 / 501 / 111
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
12.11.2014, 19:25  [ТС] #7
А как тогда реализовать подобное? Не хочется в родительском классе добавлять переменную. Потом в методы нужно будет посылать экземпляр дочернего класса + эту переменную. Не люблю когда много параметров нужно передавать)
0
Vladimirys
312 / 209 / 26
Регистрация: 16.01.2010
Сообщений: 608
14.11.2014, 15:01 #8
Опять же ИМХО, как собрались реализовать, так и делайте. Тут нельзя сказать однозначно. По мне, так ничего такого передал параметром, и все, они собственно для этого и есть. Некоторые, к примеру, прям готовы жизнь положить, в борьбе со статическими переменными. Прям зло и все, и без вариантов.
0
14.11.2014, 15:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2014, 15:01
Привет! Вот еще темы с ответами:

Объявление static без имени - Программирование Android
Наткнулся на такой код: private static final UriMatcher uriMatcher; static { uriMatcher = new...

Время жизни static объекта - Программирование Android
Приветствую, Что то я запутался с проклятым static, помогите. Дано: public class Main extends Activity{ public static...

Как проинициализировать static поле класса? - C++
Добрый вечер. Как проинициализировать в конструкторе b() подобную переменную? В данном примере "слишком много значений инициализатора". ...

Вызов метода внутреннего класса методом внешнего класса - C++
Не могу разобраться как реализовать вложенный класс и как его вызвать. Занимаюсь по Лафоре, про вложенные классы ничего, а задача в конце...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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