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

为什么访问说明符可以';不能用于Java类中方法内声明的变量?,java,class,variables,methods,access-specifier,Java,Class,Variables,Methods,Access Specifier,为什么我们不能对Java类中方法内声明的变量使用访问说明符?,因为它没有意义。方法中声明的变量是该方法的局部变量;i、 e.无法在方法之外访问它们。修改变量的声明可以实现什么目的?这样做没有意义 局部变量(在方法中声明的一个)仅在该方法的作用域中-将其声明为“public”或“protected”意味着什么?只有该方法中的代码才会知道它,并且您不会区分该方法中的不同代码位,以允许某些部分访问变量,而允许其他部分不访问变量。只有当您想要控制其他类如何使用它时,访问修饰符才有意义。您希望如何通过使用

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

,因为它没有意义。方法中声明的变量是该方法的局部变量;i、 e.无法在方法之外访问它们。修改变量的声明可以实现什么目的?

这样做没有意义


局部变量(在方法中声明的一个)仅在该方法的作用域中-将其声明为“public”或“protected”意味着什么?只有该方法中的代码才会知道它,并且您不会区分该方法中的不同代码位,以允许某些部分访问变量,而允许其他部分不访问变量。

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

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

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

如果我们显式地应用访问修饰符,上述代码将不会编译。

根据java规则,无论方法范围中声明的变量在外部是不可访问的,这本身意味着变量本身是私有的,受保护的,当然,如果没有指定,我们知道它的默认值。因此,使用上述访问修饰符声明局部变量没有意义。但是,您仍然可以使用“final”访问修饰符,因为您不希望在方法()的过程中更改它,因为一些处理过程,例如不希望将值重新指定给变量等,

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

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

你能举例说明你的意思吗?这个访问修饰符将如何使用?在发布Q之后,我自己意识到了答案。我试图删除Q,但由于已经发布了一两个答案,我无法删除Q。因此,我请求停止向下投票。Java中没有“访问说明符”这样的东西。Java中正确的术语是“访问修饰符”。我以前也看到过答案被删除的问题。@EJP…当我试图删除它时,它会给我以下消息:“对不起,这个问题有答案,不能删除;请改为标记它以引起版主的注意。”