java里 class前边不加static为啥报错?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里 class前边不加static为啥报错?相关的知识,希望对你有一定的参考价值。
上面是我的,下边是教程里的,他就不报错还能运行为神马0 0
谁随便回答一下吧,刚发现问题,解决了= =
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为啥报错?的主要内容,如果未能解决你的问题,请参考以下文章