m0_64581160 2021-12-19 23:46 采纳率: 50%
浏览 85
已结题

请问局部内部类成员为什么不能声明为static

java初学者今天刚刚学到内部类,听到老师讲了局部内部类,局部内部类虽然是当做一个局部变量来看待,但是本质还是一个类,请问各位大佬为什么里面不能声明静态成员呢?
我现在的一些想法是局部内部类随着方法被调用,开栈之后使用局部内部类时就进行类的加载,然后像其他类一样先初始化静态成员然后再初始化非静态成员,这也是我理解的为什么外部类调用内部类的成员还需要创建对象的原因,就像在main方法调用一个类的成员一样,现在是在创建的方法栈中调用另一个类的成员自然也需要对象,但是我又转念一想,既然可以通过对象访问成员,为什么不能声明为静态成员,直接通过局部内部类的类名访问呢,方法调用结束后,一般的局部变量生命周期就到头了,但是局部内部类本质是类,方法区应该还是会保存局部内部类的信息自然也可以保留静态域的信息,所以我不能理解为什么不能声明静态成员
请求大佬帮忙答疑解惑,感谢感谢

  • 写回答

1条回答 默认 最新

  • 俺不理解 2021-12-19 23:59
    关注

    这么说吧 static 声明的东西需要依赖一份文件,属于某一份文件的,比如你在A类内声明一个内部静态类B,编译之后,其实会有两份文件,A和A.B

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 创建了问题 12月19日