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

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

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

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

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

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

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

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

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

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

Как наследовать класс activity - Программирование Android
Написал класс activity1 в котором программно создан layout1. Как использовать мой класс в новом создаваемом приложении? какой нужен...

Как использовать класс Cashemanager? - Программирование Android
для чего применяется\ класс Cashemanager как при помощи его методов сохранить значение в память или получить значение из памяти??

Как использовать класс Dictionary? - Программирование Android
доброго времени суток форумчане! Пожалуйста помогите!!! Как использовать класс Dictionary(),,,обяснит пример показать((((

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
15.08.2015, 17:07     Как объявить статический класс? #16
а еще тут
danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 850
15.08.2015, 17:10  [ТС]     Как объявить статический класс? #17
Mikalai, почитал. Сейчас объявил два экземпляра статического класса- и в одном из них изменил значение переменной-члена. Судя по тому, что класс "статичен", значение переменной должно было поменяться и в другом "экземпляре", но оно почему то не поменялось.. Странно
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 653
15.08.2015, 18:15     Как объявить статический класс? #18
danek130995, StaticNestedClass и singleton - это разные вещи. StaticNestedClass просто не привязан к конкретному объекту его обрамляющего класса(OuterClass). Но это не значит, что у него существует только один экземпляр(для этого используют шаблон проектирования singleton). Вот тут можно прочитать про то, что StaticNestedClass ведёт себя как top-level class, который был вложен в другой класс верхнего уровня для удобства упаковки(packaging convenience).
danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 850
15.08.2015, 21:55  [ТС]     Как объявить статический класс? #19
Mikalai, что то я потерялся, мне кажется я совсем понимаю вот что: что вы имееете ввиду под
Цитата Сообщение от Mikalai Посмотреть сообщение
не привязан к конкретному объекту его обрамляющего класса
Можете привести пример, как понять привязан/не привязан?
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 653
15.08.2015, 23:26     Как объявить статический класс? #20
Статический внутренний класс должен обращаться к нестатическим членам своего внешнего класса при помощи объекта, т.е. он не может обращаться напрямую на нестатические члены своего внешнего класса(тоесть объект внемшего класса не создаётся)

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

information
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2015, 12:02     Как объявить статический класс?
Еще ссылки по теме:

Как изменить дефолтный класс в eclipse? - Программирование Android
Вот есть, например, Log.class, с помощью которого мы показываем логи приложения. Как можно изменить этот класс?

Класс Date, как правильно задать дату? - Программирование Android
public class MainActivity extends ActionBarActivity { TextView Text; @Override protected void onCreate(Bundle...

Как передать ссылку по клику в другой класс? - Программирование Android
как передать ссылку по клику в другой класс есть класс парсера вот часть кода protected InputStream getInputStream() { ...

Как организовать класс для работы с несколькими таблицами - Программирование Android
private class DbOpenHelper extends SQLiteOpenHelper{ public DbOpenHelper(Context context, final String DB_NAME,...

Как можно вызывать один класс в разных activity? - Программирование Android
Всем привет! Пишу плеер типа ютюба и нужно, чтобы один класс вызывался в нескольких активти. я думаю нет смысла писать код плеера в каждой...


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

Или воспользуйтесь поиском по форуму:
danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 850
16.08.2015, 12:02  [ТС]     Как объявить статический класс? #21
Mikalai, спасибо, разобрался, последняя статья была идеальна

Добавлено через 38 минут
Mikalai, а вот эта запись во внутреннем классе будет означать, что я хочу получить ссылку на текущий экземпляр внешнего класса?
Java
1
 Second d= Second.this;
Yandex
Объявления
16.08.2015, 12:02     Как объявить статический класс?
Ответ Создать тему
Опции темы

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