栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

“ object.new”如何工作?(Java是否有.new运算符?)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

“ object.new”如何工作?(Java是否有.new运算符?)

它们是 内部 (嵌套的非静态)类:

public class Outer {  public class Inner { public void foo() { ... } }}

你可以做:

Outer outer = new Outer();outer.new Inner().foo();

或者简单地:

new Outer().new Inner().foo();

这样做的原因是

Inner
引用了外部类的特定实例。让我给你一个更详细的例子:

public class Outer {  private final String message;  Outer(String message) {    this.message = message;  }  public class Inner {    private final String message;    public Inner(String message) {       this.message = message;    }    public void foo() {      System.out.printf("%s %s%n", Outer.this.message, message);    }  }}

并运行:

new Outer("Hello").new Inner("World").foo();

输出:

Hello World

注意: 嵌套类也可以

static
。如果是这样,则它们没有
this
对外部类的隐式引用:

public class Outer {  public static class Nested {    public void foo() { System.out.println("Foo"); }  }}new Outer.Nested.foo();

静态嵌套类经常

private
会成为实现细节,并且是封装问题的一部分而又不污染公共名称空间的一种巧妙方法,通常如此。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569530.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号