外部可见但不可修改,但内部可修改?

时间:2014-05-24 20:47:03

标签: java variables global-variables

在我继续提问之前,在我的所有搜索中,我似乎无法找到这个,所以如果它是一个骗局我很抱歉。现在回答问题:

是否有一个修饰符可以使变量可见但在其类之外不可修改而不改变它在其类中的可修改?所以基本上对于其他类来说它是public final但是它所在的类只是public。我找到了thisthis,但两个人都没有回答我的问题。

再次,对不起,如果这是一个重复的问题并提前感谢。

2 个答案:

答案 0 :(得分:1)

  

是否有一个修饰符可以使变量可见但在类

之外不可修改

将其设为私有,并仅公开其他类访问的getter方法。如果它是公开的那么你不能阻止它由其他类可修改。如果一个类可以访问它,那么它也可以修改它。

尽量避免对实例变量使用公共修改。始终使用公共getter& amp; setter方法,为您提供更多控制。

例如在setter方法中,您可以检查传递值的有效性。


类级访问修饰符(仅限java类)

只允许使用两个访问修饰符,public和no modifier

  • 如果某个班级是“公开”,则可以从任何地方访问。
  • 如果一个类有“无修饰符”,则只能从“同一个包”访问它。

成员级访问修饰符(java变量和java方法)

允许所有四个公共,私人,受保护和无修改者。

  • public和no modifier - 与类级别相同。
  • 私人 - 会员只能访问。
  • protected - 可以从“相同的包”访问,任何包中的子类都可以访问。

为了更好地理解,成员级访问被制定为表格:

enter image description here

答案 1 :(得分:0)

没有这样的修饰符,但如果你想实现这个,还有另一种解决方法。

  1. 将您的变量设为私有。

  2. 编写公共getter方法以在类外部访问它。它将允许外界阅读它。

  3. 不要为此设置setter,它会使它只读。

  4. 然而,在课堂上它可以随时更改