为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不是Outer.Inner2 in2 = Outer.newInner2()呢这两个冲突么?

为什么不是Outer.Inner2 in2 = Outer.newInner2()呢这两个冲突么?

犯罪嫌疑人X 2022-07-28 19:15:48
class Outer{ class Inner{ void show(){ System.out.println("Inner show"); } } static class Inner2{ void show2() { System.out.println("Inner2 show2"); } static void show3(){ System.out.println("Inner2 show3"); } } }class Demo2{ public static void main(String[] args) { Outer out = new Outer(); Outer.Inner in = out.new Inner(); // Outer.Inner in =new Outer().new Inner(); in.show(); Outer.Inner2 in2 = new Outer.Inner2(); in2.show2(); Outer.Inner2.show3(); }}自学小白,不知道15+16行是否能代替17行,运行时没有问题的,那就姑且默认为可以代替。 我的问题是 当内部类为静态类的时候 访问静态内部类中函数的做法是 20行+21行 那么为什么16行不是写成 Outer.Inner in = new out.Inner();而是 Outer.Inner in = out.new Inner()呢又或者说参照15+16行的话 20行为什么不是Outer.Inner2 in2 = Outer.newInner2()呢这两个冲突么?自学小白,不知道15+16行是否能代替17行,运行时没有问题的,那就姑且默认为可以代替。 我的问题是 当内部类为静态类的时候 访问静态内部类中函数的做法是 20行+21行 那么为什么16行不是写成 Outer.Inner in = new out.Inner();而是 Outer.Inner in = out.new Inner()呢又或者说参照15+16行的话 20行为什么不是Outer.Inner2 in2 = Outer.newInner2()呢这两个冲突么?
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

调用别的类的方法需要实例化 new
class Program
{
void aa()
{ }
void bb()
{
aa();
em e=new em();
e.cc();
}
}
class Em
{
void cc()
{ }
}
0无


查看完整回答
反对 回复 2022-08-01
  • 1 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信