Java. Урок 30. Пакеты и области видимости 3.3
1
2
3
4
5
{
    int x;
    //видна
}
//не видна

Как вы помните нельзя создавать переменные с таким же именем, как те которые находятся в области видимости:

1
2
3
4
int x;
{
    int x;//ошибка
}

Например нельзя в методе создать переменную с именем, совпадающем с названием параметра:

1
2
3
public void test(int t) {
    PackageTest t = new PackageTest();//ошибка
}

Конфликт имен возникает в программе, когда импортируется два пакета, которые содержат классы с одинаковым именем. Java разрешает эту проблему следующим образом: класс, который был импортирован первым получает возможность быть созданным без точки, а второй класс может быть вызван только с использованием его полного имени. Например, если импортировать в какой — то класс пакеты ru и ru.cybern, то в зависимости от порядка, мы сможем обратиться к тому или иному классу Test.

1
2
3
4
5
6
7
8
9
import ru.Test;
import ru.cybern.*;
public class test {

    public static void main(String[] args) {
        Test test1 = new Test();//ru.Test
        ru.cybern.Test test2 = new ru.cybern.Test();
    }
}

Если конфликт имен переменных произошел между параметрами метода и полями класса, то для его разрешения используют ключевое слово this:

1
2
3
4
5
6
public class TestClass {
    int key;
    public void setKey(int key){
        this.key = key;
    }
}

На этом мы заканчиваем рассмотрение пакетов и областей видимости.

 
Категория: Java | Добавил: ghost_mod (29.09.2016)
Просмотров: 368 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: