课程
/后端开发
/Java
/Java入门第二季 升级版
使用SInner si = HelloWorld.new SInner();来创建对象,如果按照调用静态方法来看,这好像没什么毛病啊,但是为什么使用HelloWorld.会报错?
2019-01-14
源自:Java入门第二季 升级版 7-7
正在回答
当内部类为静态内部类时:创建对象是 内部类名 对象名=new 内部类名();
当内部类为非静态内部类时:创建内部类对象时需要通过外部类对象:内部名 内部对象名=外部对象名.new 内部对象名();
而此题内部类为静态内部类
通过“HelloWorld.”可以调用出静态方法和静态属性。然后你是通过类名调用了一个静态类实例化后的一个实例,觉得是出现了语句逻辑错误,可以这样,SInner si=new HelloWorld.Sinner();才疏学浅的我是这样认为的,接受路过攻城狮斧正。祝学愉快
HelloWorld并没有被实例化
只有实例化后才可以这样使用
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
2 回答语句SInner si=new SInner();中 si 是什么?
3 回答这里为什么不用创建对象?
2 回答使用外部类对象创建内部类对象???
5 回答创建内部类对象为什么要先创建外部类对象
3 回答这里调用eat()方法为什么不用创建对象