为什么访问说明符不能用于Java类中方法内声明的变量?

为什么我们不能对Java类中的方法内声明的变量使用访问说明符?

因为它没有意义。 方法中声明的变量是方法的局部变量; 即它们不能在方法之外访问。 什么会修改变量的声明实现?

这样做是没有意义的。

局部变量(在方法中声明的变量)仅在该方法的范围内 – 甚至将其声明为“公共”或“受保护”是什么意思? 只有该方法中的代码才会知道它,并不是说您要该方法中区分不同的代码位,以允许某些部分访问变量而不是其他部分。

仅当您想要控制其他类如何使用它时,访问修饰符才有意义。 您希望如何通过使用这些修饰符来控制访问方法中的变量? 这听起来非常愚蠢地控制方法中变量的访问,特别是当变量范围仅在方法内时。 方法完成后,变量将不存在。 即使变量是从堆中分配内存,仍然,一旦引用消失,内存就可用于垃圾收集。

没有应用访问修饰符的意义,因为局部变量访问范围仅限于方法范围。 因此,没有应用访问修饰符的含义。

class Foo{ public void stuff(){ private String x=2; //compilation error. } } 

如果我们明确应用访问修饰符,则上述代码将无法编译。

根据java的规则,无论在方法范围内声明的变量是否都无法在外部访问,这本身意味着变量本身是私有的,受保护的 ,当然,如果没有指定,我们就知道它的默认值 。 所以用上面提到的访问修饰符声明一个局部变量是没有意义的。 但是, 仍然可以使用“最终”访问修饰符,因为您不希望在方法()过程中更改它,因为某些处理(例如对变量的值进行了不必要的重新分配等),

  • 在方法或块或构造函数中声明的变量称为局部变量。
  • 局部变量在方法/块中初始化,并在方法/块执行完成后被销毁。

因此,为这些类型的变量指定访问修饰符没有任何意义。