当前位置: 首页 > 面试题库 >

Java实例变量可访问性

钱雅逸
2023-03-14
问题内容

Java中以下变量的可访问性有什么区别?

public class Joe {
    public int a;
    protected int b;
    private int b;
    int c;
}

我对最后一个正在做什么最感兴趣。


问题答案:
  • public:任何人均可读/写
  • protected:对于子类的实例以及在封闭包中可读写
  • private:对于类的任何实例以及内部或外部(包含)实例均是可读写的
  • int c:包专用,对于同一包内的所有类均可读写
    有关更多详细信息,请参见JLS

编辑:添加了受保护的注释,说明访问是从同一程序包内部授予的,你们是完全正确的。还为添加了评论private。我想起来了… ;-)



 类似资料:
  • 你可以使用与写入实例变量值相同的语法来读取实例变量的值: int x = blank.x; 表达式blank.x表示“进入名为blank的对象中并取得x的值”。这里我们把这个值赋值给局部变量x。注意,名为x的局部变量和名为x的实例变量并不冲突。点号的作用就是明确地区分你所指的是哪一个变量。 可以将点记号用作C++表达式的一部分,所以下面代码是合法的: cout << blank.x <

  • 问题内容: 我有这个课: 有什么方法可以使用自变量访问静态变量?我宁愿这样做,因为长名称不可读。 问题答案: 使用。这对新旧样式类均适用。

  • 问题内容: 我怀疑我必须缺少一些非常基础的东西,但是我似乎无法从Java代码访问Scala字段: 产量: 线程“主” java.lang.Error中的异常:未解决的编译问题:字段TestScala.myNum不可见 这张Assembla票证触及了这个主题,但我的小头盖骨无法解析有用的解决方案: http://scala-ide.assembla.com/spaces/scala-ide/tick

  • 问题内容: 考虑示例: 我们怎么能做到这一点(而价值 确实 发生了变化)? 枚举实例不是隐式 静态的 并且是 final的 吗?另外,既然是,为什么我可以在其他课程之外访问它? 问题答案: 似乎没有人解决私人方面的问题。我的猜测是您正在从包含类型访问私有字段-您的枚举 实际上 是嵌套类型,如下所示: 这是完全合法和正常的-您 始终 可以从包含的类型访问嵌套类型的私有成员。 如果将枚举设置为顶级类型

  • 问题内容: 所以我有两节课:和。是抽象超类,是其子类。 这是代码 这是代码 我现在的问题是在方法中,每当我尝试在方法中运行它时,如下所示 它打印出0.0。为什么不打印20.11?我该如何解决? ============================================== 编辑:感谢您修复我的愚蠢错误>。< 但是,只要说我的财产正在使用 现在我无法访问它们,因为它们是私有访问权限,还

  • 本文向大家介绍我们可以从Java中的静态方法访问实例变量吗?,包括了我们可以从Java中的静态方法访问实例变量吗?的使用技巧和注意事项,需要的朋友参考一下 我们无法直接访问静态方法内的实例变量,因为静态方法只能访问静态变量或静态方法。 顾名思义,实例变量与类的实例相关。因此,直接从不依赖于任何特定实例的静态方法访问它是没有意义的。因此,要访问实例变量,我们必须具有要从中访问实例变量的类的实例。 例