java 中私有访问修饰符和非访问修饰符有什么区别?

what is diffrence between private access modifier and no access modifier in java?

对于未使用的成员,eclipse 给我一个带有私有访问修饰符的警告 "The value of the field is not used"。如果修饰符已更改为 public 或没有修饰符,则不会出现警告。

这让我感到困惑。默认修饰符不是 java 中的 public。 如果修饰符已更改为私有且没有修饰符,Eclipse 会更改警告。一定有区别。

默认修饰符也叫'package-private',意思是同一个包里只有类可以访问。

如果class没有修饰符默认,也称为包私有),它是可见的仅在其自己的包内。因此该变量有机会在其他 classes 中使用。

其中 private 意味着您只能在同一个 class 中使用它。如果您没有在同一个 class 中使用它,则根本没有用到它,您的 IDE 也是一样。

private - 只有 class 本身可以访问它

package-private - 没有分配修饰符。只有class在同一个包中的人可以访问它

Eclipse 仅针对私有成员发出警告的原因是,这是 Eclipse 可以确定确定成员是否未使用的唯一情况。 Eclipse 只知道存在于同一工作空间中的代码,因此它无法确定 publicprotected 或 "default" 可见成员是否被当前工作空间之外的其他代码使用。 private 成员不可能在 class 之外使用,因此 Eclipse 可以做出 "unused" 决定。