为啥 Java 不允许在循环中使用访问修饰符?
Posted
技术标签:
【中文标题】为啥 Java 不允许在循环中使用访问修饰符?【英文标题】:Why Java will not allow to use access modifiers in loops?为什么 Java 不允许在循环中使用访问修饰符? 【发布时间】:2018-09-29 12:27:28 【问题描述】:for(public int i=0;i<10;i++)
System.out.println(i);
for(private int i=0;i<10;i++)
System.out.println(i);
Eclipse 说只允许 final。
【问题讨论】:
因为局部变量永远不能在它们声明的范围之外被访问。 您希望在循环中声明的公共变量的语义是什么? 我问过那个问我这个问题的人同样的问题,但他说你找到了。他还问我哪个是局部变量的默认修饰符 那你不是很有才华的公司,是吗? 这个问题是在我的工作面试中提出的:P 【参考方案1】:首先我们需要知道访问修饰符的需要是什么。 访问修饰符限制对另一个类中的类、构造函数、数据成员和方法的访问。
但是当我们在循环中声明一个变量或任何东西时,它们的范围/使用仅限于该循环。 这意味着我们只能在该循环内使用这些变量。我们不能在该循环之外使用这些变量。 (SUN写java的人有限制)。
所以如果我们不在循环外使用循环变量,那么在循环内需要使用访问修饰符吗?这就是为什么java不允许它。
【讨论】:
以上是关于为啥 Java 不允许在循环中使用访问修饰符?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Java 反射 API 允许我们访问私有和受保护的字段和方法?这不会破坏访问修饰符的目的吗? [复制]