在一个类中 新建另外一个类并创建对象应该用哪一种?

img


大家好,我想问一下这一串代码 在类中创建了另外一个类,并调用它,应直接使用class Dog 还是Static class Dog

img


我刚在看教学视频中的up主代码是直接class Dog 而且还创建对象成功了,我的就不可以

img

img


请问这是什么原因呢?

静态方法中通过关键字 new 只能创建静态内部类,而不能创建普通的内部类,因为普通的内部类编译后会持有外部类的引用,在静态方法中是不存在外部类的引用的。

可以把 Dog 类定义在 Demo001 类的外部,一个文件中也可以,此时 Dog 类不能加 public 修饰符,这样就行了。

静态方法中通过关键字 new 只能创建静态内部类,而不能创建普通的内部类,因为普通的内部类编译后会持有外部类的引用,在静态方法中是不存在外部类的引用的。
可以把 Dog 类定义在 Demo001 类的外部,一个文件中也可以,此时 Dog 类不能加 public 修饰符,这样就行了。

up主新建的不是内部类,(即不是在类中创建了另外一个类),
你看你的dog类是在另一个类中,变成了内部类,内部类使用static修饰

你看的up主的类不是内部类,你的这个写法是内部类,他的应该是写在最外面的。