java里 class前边不加static为啥报错?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里 class前边不加static为啥报错?相关的知识,希望对你有一定的参考价值。

上面是我的,下边是教程里的,他就不报错还能运行为神马0 0
谁随便回答一下吧,刚发现问题,解决了= =

图里A是一个单独的类,你输入的是A成了one类的内部类,这种内部类里不能有static方法。 参考技术A static 是全局的 参考技术B 自己括号都没对齐

Java子类加static不报错,不加无法解析类型?

非static的内嵌类型,不能这么new,要以xxx.new 这样的形式,xxx是外层类的一个对象。
原因是:非static内层类对象不能脱离外层类对象存在
比如你这个,要这样写
animal xxx = new animal();
animal c = xxx.new mouse();
所以反过来,如果你的类之间关系不适合用内嵌类来表示(例如你这个,mouse和animal没有内嵌关系,一点都说不通),那就不要用内嵌类。
要写成static的(像pig那样),或者起一个新文件,mouse.java。追问

谢谢指点,但animal xxx = new animal();这句为什么可以解决这个问题啊(原谅我是真的萌新)

追答

一个内嵌类的对象,和包含它的类,是不可分割的,长在一起,不能独立存在。

举个栗子,不是完全恰当的

猪有猪腿,但是猪腿是猪长出来的,没有猪,不能new 一个猪腿,而是这头猪.new 猪腿那头猪.new 猪腿

这头猪的猪腿不能换到那头猪身上。

追问

谢谢回答,弄懂了欸

参考技术A 一、static不报错,了解static用法:修饰变量、方法、代码块。
1、修饰变量:如 private static int i;
2、修饰方法:如public static meth();
3、修饰代码块:static String string=new String()
二、static应用条件:
1、static方法内部使用的外部变量和方法(本方法以外的变量)时在外部必须是静态的,或对象的变量(对象:new的对象, 对象.静态变量,对象.静态方法)

以上是关于java里 class前边不加static为啥报错?的主要内容,如果未能解决你的问题,请参考以下文章

java配置环境变量classpath的时候,为啥要加上当前目录而配置path的时候为啥又不加了

java接口中的方法为啥不是static就报错?

Java:关于Java中的this,这里为啥加不加都一样呢

为啥加了个static就报错?

C#里class和public class的区别

java里为啥主函数前面要加static修饰