首先,我们来敲一个最基础的Java代码“hello world!”。
public class Hello {
public static void main(String[] args)
{
System.out.println("hello world");
}
在上面我们可以看到 void main 函数前有关键字static。对代码执行产生结果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/5d5a080bd77dba39eb0d6ec8f4b885df.png)
我们可以看到hello world成功打印了出来。
那么当我们去掉static会发生什么?
public class Hello {
public void main(String[] args)
{
System.out.println("hello world");
}
}
结果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/1b062f54abe8139e91b876cb0fe5a3cd.png)
上面我们成功的通过了编译但无法执行。
对此现象进行解释:
static 在此修饰的成员变量叫做静态变量,静态变量简单来说就是在你执行一串带码时,电脑会自动帮你调用这段代码无需你的介入。
用下面的例子来帮组理解
public class Hello{
public static void main(String[] args){
System.out.println("hello world");
}
public void method()
{
System.out.println(“0000");
}
}
首先我们可以看到有两个public访问连接词带动的两串代码(public 可以被任意class文件调用),而两串代码的所要表示的效果一个是打印hello world,一个是打印0000;
结果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/ea5ccbec9fcf645976b7f10964135cb4.png)
我们可以看到代码的结果是只有hello world被成功打印了出来,理由就是static修饰的静态变量所用静态方法,属于类,而不属于类的对象。它通过类直接被调用,无需创建类的对象。
而我们0000结果的属于实例变量而实例变量只能通过对象名调用。也就是下面的代码:
public class Hello{
public static void main(String[] args){
System.out.println("hello world");
Hello s=new Hello();
s.method();
}
public void method()
{
System.out.println("0000");
}
}
结果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/c8ee3f18c3d38a3d4f3bbb0aae13c9c4.png)
由此可以看出在我们对代码进行对象名的调用后才使得代码0000被成功打印。
总结:
当我们想要在Java中调动一串代码时,我们可以通过静态方法,自动化来运行代码,而当我们采用实例变量时需要自己new一个对象并且调用new的对象此时程序才会被运行。