С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 13
1

Видимость переменных

15.10.2013, 10:54. Показов 1423. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Может кто-нибудь сможет объяснить
Если мы напишем вот так
Java
1
2
3
4
5
6
7
8
9
public class T{
    int x=1;
    public static void main (String args[]){
        int x=2;//2
        {
            int x=3;//3
        }
    }       
}
то в //3 будет ругаться на объявление переменной.

А вот здесь в //4 уже не ругается
Java
1
2
3
4
5
6
7
8
9
public class Е{
    int x=1;
    {
        int x=4;//4
    }
    public static void main (String args[]){
 
    }       
}
Почему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
15.10.2013, 10:54
Ответы с готовыми решениями:

Видимость переменных в дочернем классе.
Есть пакет, в котором есть 2 класса. Экземпляр класса2 создается в конструкторе класса1. Как в...

Видимость переменных. Может ли метод вызывать сам себя?
Такой вот вопросец появился. Имеем гипотетический метод с циклом for, который обрабатывает строку....

Видимость методов
Доброго времени суток! Основная тематика программы-консультация по продаже мобильных...

Видимость в пределах пакетной иерархии
Доброго утра. Есть пакетная иерархия: Database -> Instances. Классы из Instances активно...

4
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
15.10.2013, 11:17 2
Потому что блок в рамках класса имеет специальное значение - это инициализатор. Он исполняется при создании каждого экземпляра. И у него своя область видимости, аналогичная методам и конструкторам.
1
Заблокирован
15.10.2013, 11:26 3
Во втором примере, там где int x=4; переменную уже не надо объявлять как int, потому что чуть выше ее уже объявили. Теперь просто поменяется ее значение.
0
KeM6Pug}I{a
49 / 49 / 1
Регистрация: 23.08.2013
Сообщений: 202
15.10.2013, 12:18 4
Цитата Сообщение от verylazy Посмотреть сообщение
Во втором примере, там где int x=4; переменную уже не надо объявлять как int, потому что чуть выше ее уже объявили. Теперь просто поменяется ее значение.
Инициализатор вызывается до конструктора, поэтому не какое значение не поменяется.
Тем более Skype уже об этом сказал.

Добавлено через 2 минуты
Цитата Сообщение от MbICJIuTeJIb_u3 Посмотреть сообщение
Тем более Skype уже об этом сказал.

Не по теме:

То есть Skipy )

0
Заблокирован
15.10.2013, 12:36 5
Да, это у меня в голове перемешалось все. Я думал про первый пример, а написал - второй.
Мои мысли было вот об этом куске
Java
1
2
3
4
5
6
 public static void main (String args[]){
        int x=2;//2
        {
            int x=3;//3
        }
    }
0
15.10.2013, 12:36
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
15.10.2013, 12:36
Помогаю со студенческими работами здесь

Когда выгоднее назначать видимость?
Когда выгоднее назначать походящую видимость переменным и методам, сразу по написают кода или...

Видимость JFrame Java Swing
Здравствуйте! У меня такой вопрос. Как сделать так, чтобы рамка окна JFrame стала невидимой, а...

Видимость переменных
Здравствуйте. Нашёл такой пример - в одном скрипте создавались переменные А в другом скрипте к...

Видимость переменных
как сделать чтобы объект pole был виден в методе MouseClick? public partial class Form1 : Form ...


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

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