static void main的问题... public static void main()是一个静态main方法,跟一般的静态方法有什么不同.静态方法中使用的对象,方法不都得是静态的么?但main方法里面好像不用哦....为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 main是类执行时候的入口方法 我感觉main方法跟其他静态方法的唯一区别是:main方法是java虚拟机默认调用的方法,这就是为什么一个类里边 如果有main方法就可以执行的原因。所有静态方法里边使用的对象并不一定都是静态的,除非想不实例化类而直接访问这个方法所在类里边的成员。 1、java入口点2、不实例化,只能静态调用 main里面的方法必须是静态的. 是JVM直接调用的方法调用的变量必须是静态的 首先我要告诉你的是main方法就是一个普普通通的static方法,和其他任何static方法都具有同样的约束,它和其他方法唯一的不同的就是main方法是所谓的入口方法,而事实上,main方法并不是一定必要的。(你可以试着去写一个没有main方法的程序哦)然后你应该要知道的是static方法中的对对象方法的调用并不一定要是static的,它可以先生成实例然后用一般方法来调用对象的方法。例如String str= new String("hello");s=s.replace("h","e");这个动作无论是在static方法还是非static方法中都是合法的。那么你说的static方法中调用成员方法和成员变量必须为static的是什么情况呢??那是调用自身上下文中的成员方法和成员变量的规定。如以下程序:class Test{public static void m1(){ System.out.println("static method m1");}public void m2(){ System.out.println("not static method m2");}public static void main(String args[]){ m1();//没错误 m2();//出错 new Test().m2();//没错误}public static void notMain(){ m1();//没错误 m2();//出错 new Test().m2();//没错误}} main方法是java应用程序的入口点,是由java虚拟机直接调用的,而其他的静态类方法是由其他类对象调用的。main里面如果不想实例化对象,那么调用的方法或变量必须都是静态的,这和其他静态方法是一样的。 public static void main() 和其它的静态方法没有任何区别,只是java规定了这个名称罢了,java.exe会试图找main方法的入口并开始运行而已main里面也不能直接调用这个类中的非静态方法,必须新建一个实例才可以 在类中如果某成员定义为static即表示该成员属于类本身,不属于任何对象。。当你编译的时候类加载的同时系统就给静态成员直接分配内存到栈中。。所以我们不用创建该类的对象也可以调用我们的静态成员!!!在main方法中定义为static就是方便jvm直接调用执行。。因为我们执行程序的时候都是从main函数入口的。。正是因为这样我们执行的时候才会找有main函数的类来执行!!! 因为你使用了Static所以你的类里面要求静态,但是,你可以声明一个自己的对象就无需把所有方法都写成静态了。Java的标准Main写法是 public static void String(args[]) 所以建议你写成这样。给你一个例子public class a(){ public static void String(args[]) { a b = new a(); a.c(); } public void b() { System.out.println("Java"); }} 1、java入口点 2、不实例化,只能静态调用 java 练习题 大家帮我看看还有什么地方可以改进的 大家也可以收集 大家帮我看看我那些方面还需要改进的 实现 Runnable 接口和继承Thread 类的线程有什么区别 JAVA找不到符号的错误,求救 请问大家用java做C/S端GUI程序一般用什么组件啊? java底层调用你会吗 在jsp中请教如何使用response传递中文参数? 有没有人用jobss,交流一下。 正在学习Serializable,请问在什么时候使用,欢迎大家讨论 谁能告知UCS-2的中文对照码表?50分相送! Java反射通过setAccessible(true)真的改变了final属性值么? JXL中setBorder怎么不起作用呢 接口中的变量为什么一定要既是 static又要是 final 呢???
2、不实例化,只能静态调用
调用的变量必须是静态的
main方法就是一个普普通通的static方法,和其他任何static方法都具有同样的约束,它和其他方法唯一的不同的就是main方法是所谓的入口方法,而事实上,main方法并不是一定必要的。(你可以试着去写一个没有main方法的程序哦)
然后你应该要知道的是
static方法中的对对象方法的调用并不一定要是static的,它可以先生成实例然后用一般方法来调用对象的方法。例如String str= new String("hello");
s=s.replace("h","e");这个动作无论是在static方法还是非static方法中都是合法的。那么你说的static方法中调用成员方法和成员变量必须为static的是什么情况呢??那是调用自身上下文中的成员方法和成员变量的规定。如以下程序:class Test{
public static void m1()
{
System.out.println("static method m1");
}
public void m2()
{
System.out.println("not static method m2");
}
public static void main(String args[])
{
m1();//没错误
m2();//出错
new Test().m2();//没错误
}
public static void notMain()
{
m1();//没错误
m2();//出错
new Test().m2();//没错误
}
}
main里面如果不想实例化对象,那么调用的方法或变量必须都是静态的,这和其他静态方法是一样的。
所以我们不用创建该类的对象也可以调用我们的静态成员!!!
在main方法中定义为static就是方便jvm直接调用执行。。
因为我们执行程序的时候都是从main函数入口的。。正是因为这样我们执行的时候才会找有main函数的类来执行!!!
写成静态了。Java的标准Main写法是 public static void String(args[]) 所以建议你写成这样。给你一个例子public class a()
{
public static void String(args[])
{
a b = new a();
a.c();
}
public void b()
{
System.out.println("Java");
}}
2、不实例化,只能静态调用