Page 98 - 4836
P. 98
Конфлікт імен виникає, коли імпортуються два пакети,
що містять класи з однаковими іменами.
У цьому випадку Java віддає перевагу класу, який був
імпортований перший. Для звернення до інших класів слід
використовувати їх повні імена.
Java "переглядає" імена класів в наступному порядку.
Спочатку - класи, імпортовані поодинці. Потім - класи,
визначені в даному пакеті. В останню чергу класи з пакетів,
що імпортуються повністю в порядку проходження команд
import.
Конфлікт імен виникає так само, коли ім'я одного з
параметрів методу збігається з ім'ям одного з атрибутів цього
ж класу. Така ситуація виникає досить часто, оскільки для
методу, що змінює значення цього атрибута, таке називання
параметра досить наочно. Наприклад:
class Dog {
int age;
...
public void setAge (int age) {
...
};
...
}
Такий заголовок методу setAge (int age) кращий, ніж
setAge (int a), оскільки відразу дозволяє судити про
призначення параметра. Однак виникає питання: до чого буде
ставитися ім'я age в тілі цього методу - до атрибуту або до
параметра.
Відповідь: до параметра. Ім'я параметра «перекриває»
ім'я атрибута.
Для того щоб звернутися до атрибута, слід
використовувати повне ім'я (тобто покажчик на об'єкт this).
Реалізація методу повинна виглядати таким чином:
public void setAge (int age) {
96