Static详解

Static : 静态。可以用来修饰变量、方法和代码块。

静态代码在类初始化阶段被初始化。

非静态代码在类的使用阶段(实例化类时)被初始化。

²  静态变量

静态变量为类变量,而实例变量属于一个特定的对象。

  • 基本数据类型

在类的外部不必创建类的实例就可以直接使用。

  • 引用类型

当静态变量是一个对象的引用,则必须先初始化这个对象之后才能将引用指向它。

即将一个引用定义为static的,就必须在定义的时候就对其进行实例化。

static testObject o=new testObject();

²  静态方法

静态方法在内存中只有一份,无论该类有多少个实例,都共用一个方法。

静态方法可以直接通过类型调用,也可以通过对象实例名调用。

静态方法只允许访问静态成员;而实例方法中既可以访问静态成员也可以访问实例成员。

静态方法中不能使用this(this是基于对象实例的)。

²  静态代码块

静态代码块主要用于类的初始化,在类被加载时自动执行。

它只执行一次,并且在同属于一个类的main函数之前执行。

静态代码块里的变量都是局部变量,只在块内有效。

一个类中可以定义多个静态代码块,按顺序执行。

静态代码块只能访问类的静态成员,不允许访问实例成员。

 

  静态代码块与静态函数的区别:

(1)     静态代码块是在项目启动前执行的,属于主动执行,且只执行一次,在同类的main函数之前执行;

(2)     静态函数在项目启动时初始化,在不创建对象的情况下,其他程序调用的时候执行,属于被动执行。

posted @ 2019-05-15 22:03  liuliuliud  阅读(187)  评论(1编辑  收藏  举报