代码之家  ›  专栏  ›  技术社区  ›  Barry Brown

公共变量的范围是什么?

  •  0
  • Barry Brown  · 技术社区  · 5 年前

    在像Java这样的语言中,变量的范围通常由最近的大括号决定。(存在语法异常,例如在 for 循环和方法的头)这样的变量在其作用域之外是不可访问的。

    公共实例变量呢?静态作用域规则表示它们是类或对象的本地规则。但是他们可以从课外接触到。我正在教初学的学生,实例变量的作用域规则不是那么明确。

    0 回复  |  直到 5 年前
        1
  •  -1
  •   jwenting    5 年前

    当然,在讨论静态时,也要考虑加载该类的类加载器,因为静态作用域不会导致数据泄漏到类加载器上下文之外,这意味着2个类实例(每个实例都包含在自己的类加载器中)不共享其静态成员。

    这允许两个类加载器都有一个类X的实例,一个具有值为“1”的静态数据成员y,另一个具有值为“2”的静态数据成员y。

    通常,在它们各自的类加载器之外,它们是不可见的,但可能以某种方式获得对它们的访问(我从未尝试过,这种方式是疯狂的)。

    哦,没有成员可以在他们的范围之外访问。只是范围可能会有很大的变化,有时会有一些奇怪的方式。

    私有成员和公共成员都存在于其包含类实例的范围内,除非它们是静态的,在这种情况下,它们存在于其包含类的范围内(如前所述,这些成员存在于特定的类加载器的上下文中)。

        2
  •  -2
  •   SECI    5 年前