为什么Java不允许在循环中使用访问修饰符? for(public int i=0;i

为什么Java不允许在循环中使用访问修饰符? for(public int i=0;i,java,loops,final,access-modifiers,Java,Loops,Final,Access Modifiers,首先,我们需要知道访问修饰符的需求是什么。 访问修饰符限制对另一个类中的类、构造函数、数据成员和方法的访问 但是,当我们声明一个变量或循环中的任何东西时,它们的作用域/使用仅限于该循环。 这意味着我们只能在循环内使用这些变量,不能在循环外使用这些变量。 (编写java的SUN人限制了它) 所以,如果我们不在循环外使用循环变量,那么在循环内使用访问修饰符有什么必要。这就是为什么java不允许它。因为局部变量永远不能在声明它们的范围外访问。你会期望在循环中声明的公共变量的语义是什么?我问了那个家伙同

首先,我们需要知道访问修饰符的需求是什么。 访问修饰符限制对另一个类中的类、构造函数、数据成员和方法的访问

但是,当我们声明一个变量或循环中的任何东西时,它们的作用域/使用仅限于该循环。 这意味着我们只能在循环内使用这些变量,不能在循环外使用这些变量。 (编写java的SUN人限制了它)


所以,如果我们不在循环外使用循环变量,那么在循环内使用访问修饰符有什么必要。这就是为什么java不允许它。

因为局部变量永远不能在声明它们的范围外访问。你会期望在循环中声明的公共变量的语义是什么?我问了那个家伙同样的问题是谁问我这个问题的,但他说你找到了。他还问我哪一个是本地变量的默认修饰符。你当时在一家不是很有才华的公司,是吗?这个问题是在我的工作面试中提出的:P
for(public int i=0;i<10;i++) {

        System.out.println(i);

        }
for(private int i=0;i<10;i++) {

        System.out.println(i);

    }