static在java中的作用

首先什么叫静态修饰符呢?

  大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。

这样做有什么意义呢?

在Java中,万物皆是对象,而对象的抽象就是类。对于一个类而言,如果要使用他的属性或者方法,在普通情况下必须先实例化对象后,通过对象的调用才能够访问这些成员,但是有种情况例外,就是该成员是用static声明的(在这里所讲排除了类的访问控制)

举例说明:

情况一    未声明static                                               情况二   声明static

class A{                                                                class A{

  public int i;                                            public static int i;

  public void y(){};                 public static void y{};

}                          }  

class B{                      class B{

  main{                                                                main{

  int j;                        int j;

 A a=new A();                                                    不需要实例化对象

  a.i=j;//通过对象访问成员变量                                  A.i=j;

  a.y()://通过对象访问成员方法                                  A.y();

}                              }

}                            }

通过这两种情况的比较,能看出来定义static可以不用实例化对象就可以在别的类中引用成员,这样的方法和属性又称为i类方法与类属性。

最后关于static的赋值问题,定义的这一个常量不管在哪个类中被实例化值都会改变,知道最后一次被赋值,所有引用这个常量值得对象都会得到最后一次的赋值。

posted on 2016-08-12 10:37  薄凉京  阅读(365)  评论(0编辑  收藏  举报

导航