为什么我可以访问封闭类引用的私有成员

2023-12-14

我看到很多有关访问封闭类的私有成员的问题。然而,我的问题恰恰相反。

如果我有(作为示例),则以下代码:

public class A {

   private String outerString = "silly string";

   static class B {
      private final A someA = new A();      

      public void foo() {
         String b = someA.outerString ;
      }
   }
}

我想知道为什么会编译?由于我从 A 类访问“outerString”实例变量(通过 someA.outerString)的方式,我预计会出现错误。我知道内部类可以通过隐式“this”引用直接访问封闭类成员。但在这里,B 类是静态的,因此“this”引用不适用。


B是的成员A因此可以访问A's private领域和方法。
在这种情况下,虽然B is static它使用 A 的实例来访问该字段A.outerString.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我可以访问封闭类引用的私有成员 的相关文章

随机推荐

  • 如果struct A嵌入到B中,A上的方法可以访问B的方法和字段吗?

    struct A func a A BName id int string return a Name struct B A Name string func main b B Name abc fmt Println b Name 代码失
  • 如何快速使用prepareForSegue?

    我有一个带有名为 BasicPhrasesVC 的表视图的 ViewController 我想传递所选单元格中的数据以将其显示在下一个 ViewController 称为 BasicPhrasesVC 上 class BasicPhrase
  • 如何将 n*1 矩阵转换为 n*n 对角矩阵

    我有一个 nx1 矩阵我想将其转换为 R 中的 nxn 对角矩阵 正如 Ben Bolker 所建议的 您可以简单地使用定义您的单位矩阵diag my matrix lt diag 0 25 4 my matrix 1 2 3 4 1 0
  • 如何使用多个隔离来服务请求

    如何设置 Dart 服务器以使用所有可用核心来处理即将到来的请求 例如 通过使用多个隔离来服务请求 Use the shared true的论证HttpServer bind 例子 import dart io import dart is
  • 切换大小写表达式

    考虑一个表达式 1 AB CD 1 这个表达式的解法是什么 上面的表达式是C语言中的一个switch表达式 2 AB CD gt 2 ABCD gt 之后我应该做什么 下面是代码片段 include
  • 在注释中使用属性值? [复制]

    这个问题在这里已经有答案了 我的一个项目中有这个带注释的课程 注释类是我定义的 问题 我可以代替字符串吗 TP REPORT 使用一些财产它的值在编译时不知道而只能在运行时知道 PhoenixTable tableName TP REPOR
  • 交换的替代版本!还返回换出的值

    我在 IRC 上谈过这个问题 clojure今天的频道 但想在这里进行更详细的介绍 基本上 为了更好地理解原子 swap deref和 Clojure 并发作为一个整体 我想尝试编写一个函数 它不仅返回使用交换的值swap 还有被换出的值
  • 从 iPhone 应用程序启动 Google 地图应用程序。

    我正在尝试从我的 iPhone 应用程序启动谷歌地图 启动部分工作正常 但自从 iPhone 3 1 更新后 我认为是在这个时候 我得到了美国和加拿大的缩小地图 而不是放大我当前的位置 最初一切都工作正常 但有时更新后一切都停止正常工作 这
  • Facebook 是 openid 提供商吗?

    我对 facebook 以及 facebook 是否是像谷歌这样的 openid 提供商感到困惑 根据这个链接 http developers facebook com blog post 246 facebook 是一个 openid 依
  • 具有固定层数的渐变

    我画了一组四边形 对于每个四边形 我在其顶点都有一个定义的颜色 例如 现在我的四边形集看起来像 我以相当原始的方式实现了这样的结果 只需将其作为四边形每个顶点的属性颜色传递到顶点着色器即可 我的着色器非常简单 顶点着色器 version 1
  • OpenGL ES:如何用颜色对纹理着色

    我有阿尔法纹理 我想用某种颜色给它着色 所以它会根据颜色 alpha 值进行着色 但整体不透明度将仅由纹理 alpha 定义 这与多重纹理类似 但使用颜色而不是第二个纹理 怎么做 更新 我尝试过设置纹理组合器 颜色着色得很好 但 alpha
  • 如何对多个div id应用相同的js函数

    我有四个 div id 元素 并且我无法切换类的 id 并且我需要相同的 javascript 函数来为所有这些元素工作 而不仅仅是第一个元素 每次刷新页面时 该函数都会随机播放这首诗的诗句 到目前为止 它只适用于第一个 div 我不知道如
  • 使用 Python smtplib 发送没有密钥文件(仅 certfile)的电子邮件

    尝试使用以下脚本发送带有证书文件的电子邮件 import smtplib client smtplib SMTP myhost myport client ehlo client starttls certfile mycertfile c
  • 使用 send-mailmessage 发送内联图像

    我正在尝试使用 send mailmessage 从命令行发送带有内联图像的 html 格式的电子邮件 我到处都找过了 但找不到解决方案 我能够收到要发送的电子邮件 但收件人没有收到图像 这是我的代码 smtp smtp server co
  • 检测移动设备[重复]

    这个问题在这里已经有答案了 我有一个 Javascript 代码 用于检测是否从移动设备查看我的网站 下面是我的代码 function if navigator userAgent match Android i navigator use
  • 将 org.joda.time.Period 转换为 java.time.Period

    我正在尝试用 java time 替换 org joda time Period 我们将以下值存储在数据库中 P1M P1Y P1D PT1H PT1M 只是为了解析这个值 Period monthly ISOPeriodFormat st
  • 为什么 double 类型的主窗口是可选的?

    访问时UIapplication s主窗口它返回为UIWindow let view UIApplication sharedApplication delegate window view UIWindow 为什么它作为双重可选返回 这意
  • 检查数组值是否包含在字符串中

    我正在对某种联系表单进行一些客户端验证 该网站当前不在线 因此服务器端不相关 我正在尝试创建一个 单词过滤器 以在 提交 表单之前捕获任何滥用淫秽语言的行为 这是代码 没有淫秽内容 function filterInput str var
  • 如何下载 Facebook 个人资料图片

    在我的 Android 应用程序中 用户可以使用 facebook twitter 登录 https graph facebook com username picture https api twitter com 1 users pro
  • 为什么我可以访问封闭类引用的私有成员

    我看到很多有关访问封闭类的私有成员的问题 然而 我的问题恰恰相反 如果我有 作为示例 则以下代码 public class A private String outerString silly string static class B p