为什么java中main方法内不能定义static方法

如题所述

只有类才存在静态的变量 方法只能对静态变量的操作 不能在方法内试图定义静态变量

否则的话会抛出编译错误

静态变量的本意是为了让所有的对象共享这个变量,如果在方法里面定义静态变量的话就存在逻辑错误了,也达不到你想要目的. 因为在方法定义静态变量根本没有他的任何意义. 任何对象都有自己的方法,即使是静态方法,方法内的变量也是在方法调用时候才开始分配内存,所以想给成静态的在逻辑上存在问题
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-04
你都说了,main是个方法,你在方法里定义方法,肯定不对啊。本回答被提问者采纳

main方法里不能写什么代码?
1.方法里不能定义另外一个方法。2.main 因为是static的,所以不能直接调用非static的本类的其他方法,非static的变量。例如 class A { int i;public static void main(String[] args) { System.out.println(i);\/\/本句不可,因为i不是static的 A a = new A();System.out.println(a.i);\/...

java错误 方法 main 不能声明为“静态”;只能在静态类型或顶级类型中才...
1,你外面的类是一个抽象类,里面又有一个公共类,2,main方法是要在非抽象类中才能使用的 解决后的代码:public class MyWindow extends JFrame implements ItemListener, ActionListener { private static final long serialVersionUID = -5398818932510250367L;Choice choice;TextField text;TextArea area;...

Java中,在main方法中定义如下变量,结果报错,static float b = 10.98f...
方法内的变量为局部变量,它的作用域是整个方法体,也就是说,当方法结束的时候该变量的空间也会被释放掉。而使用static修饰的变量为类变量,一旦定义,常驻内存,这与局部变量的定义是矛盾的。望楼主采纳。

java里,在Main函数里定义Static方法,然后调用,为什么会出错
Main函数本质上也是个方法,只不过是程序的运行起点而已。你不能在方法里面定义方法啊,这样会有语法错误,js这种函数式编程语言是允许的,但是java不行的。所以你只能在main函数外写好,然后再调用这个静态方法。记住一点:java方法内部不能定义方法 ...

Java提示main方法不能声明为静态。
main方法只能声明在static的方法中。你碰到的问题是,Knowedge是内部非静态类类。你可以把Knowedge变为static类,或者把Knowedge作为外部类。这样:class Tree { String name; int age; int weight; public Tree(String name, int age, int weight) { this.name = name; this.ag...

java错误 方法 main 不能声明为“静态”;只能在静态类型或顶级类型中才...
} Arrays.sort(a); for(int i=1;i<a.length-2;i++){ sum+=a[i]; } return sum; }}class AverageStore{ Stragery stragery; double[] arr; int i;\/\/裁判的人数 void setStragery(Stragery stragery){ this....

java中 main()方法中为什么不能new 内部类
1.首先你的内部类不是静态的对吧(不是static class)。2.而main方法是静态的。3.main 方法是个静态方法,而 静态 类不是个静态内部类,所以不能直接初始化。对main方法而言,虽然写在类中,它是游离于任何类之外的(就跟C++一样,单独一个main方法),因此某类的非静态内部类对它而言是不直接可见...

请问JAVA的main函数前加的static和public是什么意思?代表了什么?不加呢...
static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有...

java中main方法中的static函数不管是不是在最后,都会最先执行吗?_百度...
你应该知道,main方法是程序执行时的入口,但是因为有了static代码段,main方法可能不会执行到。main之所以为static的,在程序加载的时候就会分配内存,但是如果一个程序中还有其他的static方法,只能在static修饰的方法中调用。对于static代码段,也是程序执行时开始加载。我在涉及多线程应用遇到过这个问题,例如...

java中抽象方法不能为private、final或者static,为什么?
它自己是个空方法。private的实质意义在于本类其他方法调用它。你自己是个空方法,别人调用你有什么用?所以\\x0d\\x0aabstract和private在一起毫无意义。final规定子类不能再覆盖它。abstract是专等着要别人来覆盖,二者矛盾。所以不能放在一起\\x0d\\x0a使用。有关static,我们上一章讲过:马克-to-...

相似回答