首页 > 编程 > Java > 正文

JAVA之static

2019-11-06 06:10:57
字体:
来源:转载
供稿:网友

static静态关键字修饰:属性,方法,内部类,代码块

static修饰的资源属于类级别,由全体对象共享资源。

1)属性

   使用static修饰的属性,属于类的全体类的实例共享的变量,静态属性在类的加载初期初始化,使用类名.属性访问  如:System.out

2)实例变量

   属于对象的属性,使用对象.属性访问 如:Person.name

举例详解:

public   class   StaticFieldDemo{

       public static void  main(String []  args){

          XMM   mm1=new  XMM();

          XMM   mm2=new  XMM();

          XMM   mm3=new  XMM();

      System.out.PRintln(mm1.id+""+mm2.id+""+mm3.id+""+XMM.i);

}}

    class  XMM{

            int id;  //实例变量

           static  i=0;//静态类级别变量

           public XMM(){      //构造函数

            id=i++;

}}

结果:0123     

注:int id实例变量,相当于“”每个人的水杯“

         static  int  i=0 静态类级别变量,相当于“公用的水桶”

执行步骤:1.加载类,static变量在类家在期间初始化

                    2.在内存中分配对象空间,属性默认自动初始化  ,为“0”值

                    3.进行属性的赋值

                    4.递归调用父类构造器,默认调用无参构造器

                    5.调用本类构造器

3)静态方法

   使用static声明的方法,属于类的方法,在类加载后就可以自己调用,不需要创建类的实例对象

   静态方法不能访问属于对象的资源(对象属性,对象方法)

4)静态代码块

  静态代码块是在类加载期间运行的代码块,由于类只加载一次,所以静态代码块只执行一次,一般用在类加载以后初始化一些静态资源 如:加载配置文件

   static{     }

 举例:class XMMM {    // 代码块    {        System.out.println("代码块,创建对象执行,创建对象了");    }    // 静态代码块    static {        System.out.println("静态代码块,类加载期间执行初始化,类加载了");    }    public XMMM() { // 构造函数        System.out.println("构造好了");    }}

结果:静态代码块,类加载期间执行初始化,类加载了            代码块,创建对象执行,创建对象了            构造好了


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表