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

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

Войти
Регистрация
Восстановить пароль
 
 
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 907
#1

Как объявить статический класс? - Программирование Android

14.08.2015, 16:43. Просмотров 1235. Ответов 20
Метки нет (Все метки)

В Android Studio заметил интересную вещь, есть некий класс (AlertDialog.Builder), объявлен как static, но в то же время можно создавать его экземпляр. Как такое может быть? Я знаком со статическими полями, методами, а вот можно ли объявлять весь класс статическим? Пробовал сделать это в Eclipse-подчеркивает красным, не дает. Помогите пожалуйста разобраться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2015, 16:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как объявить статический класс? (Программирование Android):

Как объявить ImageButton в Fragment.java? - Программирование Android
Помогите пожалуйста!Есть Fragment как правильно объявить ImageButton,что бы по нажатию на него происходил переход на другой экран.

Как объявить переменную в Андроид Студио? - Программирование Android
Не кидайте тапками, если вопрос сильно глупый) Осваиваю Андроид Студио по урокам Александра Климова...

Статический listener - Программирование Android
Всем привет! Немного затупил. Есть некий ListView, в котором хранятся изображения. Изображения гружу при помощи Glide, в котором есть...

Статический импорт в Android - Программирование Android
Когда я пишу, например, import static java.lang.Math.abs - все работает и все хорошо. А если я хочу импортнуть все статические методы, я...

Как объявить статический метод класса? - C++
выдает ошибку на 11 16 19 строку((((((( #include <iostream> using namespace std; class Sop { private: short int kol; ...

Как правильно объявить статический метод - C++
например class A { private: static void method(); // объявление }; // как правильно объявить реализацию?

20
Pablito
2549 / 2031 / 633
Регистрация: 12.05.2014
Сообщений: 7,150
Завершенные тесты: 1
15.08.2015, 17:07 #16
а еще тут
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 907
15.08.2015, 17:10  [ТС] #17
Mikalai, почитал. Сейчас объявил два экземпляра статического класса- и в одном из них изменил значение переменной-члена. Судя по тому, что класс "статичен", значение переменной должно было поменяться и в другом "экземпляре", но оно почему то не поменялось.. Странно
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
15.08.2015, 18:15 #18
danek130995, StaticNestedClass и singleton - это разные вещи. StaticNestedClass просто не привязан к конкретному объекту его обрамляющего класса(OuterClass). Но это не значит, что у него существует только один экземпляр(для этого используют шаблон проектирования singleton). Вот тут можно прочитать про то, что StaticNestedClass ведёт себя как top-level class, который был вложен в другой класс верхнего уровня для удобства упаковки(packaging convenience).
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 907
15.08.2015, 21:55  [ТС] #19
Mikalai, что то я потерялся, мне кажется я совсем понимаю вот что: что вы имееете ввиду под
Цитата Сообщение от Mikalai Посмотреть сообщение
не привязан к конкретному объекту его обрамляющего класса
Можете привести пример, как понять привязан/не привязан?
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
15.08.2015, 23:26 #20
Статический внутренний класс должен обращаться к нестатическим членам своего внешнего класса при помощи объекта, т.е. он не может обращаться напрямую на нестатические члены своего внешнего класса(тоесть объект внемшего класса не создаётся)

Внутренний класс(non-static) имеет доступ ко всем переменным и методам своего внешнего класса и может непосредственно ссылаться на них(значит объект внешнего класса создаётся и существует, как минимум, пока существует объект внутреннего класса). Если вам понадобится получить ссылку на объект внешнего класса, запишите имя внешнего класса, за которым следует точка, а затем ключевое слово this.

information
2
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 907
16.08.2015, 12:02  [ТС] #21
Mikalai, спасибо, разобрался, последняя статья была идеальна

Добавлено через 38 минут
Mikalai, а вот эта запись во внутреннем классе будет означать, что я хочу получить ссылку на текущий экземпляр внешнего класса?
Java
1
 Second d= Second.this;
0
16.08.2015, 12:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2015, 12:02
Привет! Вот еще темы с ответами:

Как лучше объявить статический список или массив - Delphi
Добрый день! Задача банальная, но не могу сообразить. Вообще есть ряд чисел integer: -32, -16, -8, 8, 16, 32. Как лучше мне...

Полиморфизм. Как в предке объявить статический массив, который можно будет использовать в наследниках? - C++
Всем привет. Мне необходимо в классе предке объявить статический массив который можно будет использовать в наследниках. Не очень хочется...

Почему нельзя объявить в описание класса статический double? - C++
Ближе к делу :) class SuperClass { public: SuperClass() {} static const int A = 0; static const double B = 0; //ERROR*...

SQLite Статический класс как уровень доступа к БД - C#
Внутри класса реализуются члены доступа к локальной БД, в основном все основано на автономном уровне ADO.NET - DataSet, DataTable и т.д. ...


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

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

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