Это происходит из-за объема переменной,
Вариант 1:
public class Test
{
public static void main(String[] args)
{
int i=3;
int i=4;
System.out.println(i);
}
}
В здесь есть переменная я, определенный в том же объеме в два раза.
Случай 2:
public class Test
{
public static void main(String[] args)
{
for(int a=0;a<9;a++)
{
int b=a+1;
System.out.println(b);
}
}
}
В здесь будет только один экземпляр б в то время, в тот момент, цикл завершается переменным разрушаются и воссоздан для следующей итерации. Таким образом, вы не получите ошибку, которую ищете.
Предлагаю вам перейти через область переменных в JAVA.
Примечание: Я бы не предлагал этот способ программирования, поскольку ресурс теряется впустую для создания одной и той же переменной снова и снова. все, что вы делаете, это сбросить его в цикле.
Update
public class Test1 {
public static void main(String[] args) {
Person p1=new Person();
System.out.println("Person Object p1 before for loop "+p1);
for(int i=0;i<5;i++){
Person p2=new Person();
System.out.println("Person object "+i+" "+p2);
}
System.out.println("Person Object p1 after for loop "+p1);
}
}
пустышка класс Person
class Person{ }
Выход
Person Object p1 before for loop [email protected]
Person object 0 [email protected]
Person object 1 [email protected]
Person object 2 [email protected]
Person object 3 [email protected]
Person object 4 [email protected]
Person Object p1 after for loop [email protected]
Здесь я создал фиктивный класс под названием Люди и я объявил и инициировал Person объект внутри петля. Теперь, когда я распечатываю объект person, он выдает хэш-код.
Теперь при анализе вывода видно, что новый объект создается во время каждой итерации, поскольку значения хеш-кода не совпадают. Если ваше приложение действительно не нуждается в такой реализации, вы должны и должны его избегать. Надеюсь, я уяснил ваши сомнения.
Это потому, что сфера действия переменной, – User27854
Когда вы перебираете цикл, существует уже иная с именем b. Итак, разве мы не объявляем другого? –
Посмотрите на мой комментарий ниже, я дал вам подробное объяснение. – User27854