网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

java内部类实例化方法及出错如何解决

本篇内容介绍了“java内部类实例化方法及出错如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

成都创新互联公司专业为企业提供东城网站建设、东城做网站、东城网站设计、东城网站制作等企业网站建设、网页设计与制作、东城企业网站模板建站服务,10年东城做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

1.内部类实例化方法

如果内部类未声明为static,在实例化时首先需要new一个外部类的对象。并通过p.new Inner()的方式new 内部类,表明这个内部类指向该外部类。内部类的class类型为:Parent.Inner,而不是p.Inner,这个需要和new的方式区分开。

public class Test {
 public static void main(String[] args) {
  Parent p = new Parent();
  Parent.Inner i = p.new Inner();
  i.print();
 }
 
}
 
class Parent {
 class Inner {
  public void print() {
   System.out.println("xxx");
  }
 }
}

2.实例化出错解决

假设是想在main方法中运行这一段代码,那么即便正确写对了main方法,依然是不能运行的。内部类有一个隐式的成员指向外部对象,在构造的时候赋值。所以普通的类默认构造方法是无参的,但是内部类的默认构造方法有一个参数,这个参数就是为了给指向外围对象的成员属性初始化。

class A{
    class B{}
}
 
$ javap -p a.b
Warning: Binary file a.b contains com.test.A$B
Compiled from "Test.java"
class com.test.A$B {
  final com.test.A this$0; //这就是指向外围的成员
  com.test.A$B(com.test.A); //这个默认构造方法和你想象的不一样吧
}

那么这种情况下,static代码块肯定是不行。

“java内部类实例化方法及出错如何解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


当前标题:java内部类实例化方法及出错如何解决
文章转载:http://bjjierui.cn/article/pedgci.html

其他资讯