admin管理员组

文章数量:1530842

2024年7月18日发(作者:)

Java中的静态变量、静态方法、静态块与静态类

在Java中,static是一个关键字,我们不能用它来作为类名或包名,static主要有四种用途,即作为静态

变量、静态方法、静态块和静态类。

1、静态变量Java static variables

静态变量就是类变量,它并不属于类的实例,仅属于类本身。在所有能访问该类的地方,也就可能访问或

修改该变量,它是非线程安全的,因此,静态变量通常是和final关键字结合在一起,用来标识该变量是一

个公共资源和常量。

只要静态变量不是private私有的,那么我们可通过leName的方式进行访问。

//static variable example

private static int count;

public static String str;

public static final String DB_USER = "myuser";

2、静态方法Java static methods

静态方法与静态变量一样,也是属于类本身而不属于类的实例对象。在一个静态方法中,除了局部变量外,

它能访问的外部变量也必须是静态的,能访问的外部方法也必须是静态的,实例变量和实例方法均不能访

问。

在绝大多数情况下,静态方法通常是public的,作为工具类的工具方法出现。

//static method example

public static void setCount(int count) {

if(count > 0)

= count;

}

//static util method

public static int addInts(int i, js){

int sum=i;

for(int x : js) sum+=x;

return sum;

}

3、静态块Java static Block

静态块是由一些语句组成的段落,它在类被加载进内存时执行,且无论类被使用多少次它都只会执行一次。

一个类的静态块可以有多个,其执行顺序由它在代码中的顺序决定。

在静态块中,我们通常进行一些需要进行异常捕获的静态变量的初始化。

static{

//can be used to initialize resources when class is loaded

n("StaticExample static block");

//can access only static variables and methods

str="Test";

setCount(2);

}

4、静态类Java static methods

静态类都是内部类,static不能用于修饰顶级的类。对于单例模式用静态类来实现就是一个很不错的选择。

5、完整示例

package ;

public class StaticExample {

//static block

static{

//can be used to initialize resources when class is loaded

n("StaticExample static block");

//can access only static variables and methods

str="Test";

setCount(2);

}

//multiple static blocks in same class

static{

n("StaticExample static block2");

}

本文标签: 静态变量实例不能方法