面向对象编程基础 三 静态成员变量,静态函数以及静态代码块

时间:2023-02-11 19:26:59

静态成员变量,定义即在成员变量前加上关键字static。静态成员变量属于类被所有对象实例共有,类和对象均能直接调用,其中一个对象改变了静态成员变量,相当于类中所有对象的该变量均改变了。静态成员变量一般使用较少,通常定义静态成员常量,这样类可以直接调用。

静态成员函数,定义即在成员函数前面加上static,也是可以由类来直接调用的。静态方法是不能访问实例域,但是可以访问自身类中的静态域。如下面的代码就会报错

public class Person{
String name;
static void func(){
System.out.println("my name is"+name)
}
}

这样就会提示错误,因为程序中name为实例的成员变量,只有对象能调用,其实程序中最后一句相当于this.name。如果将String name申明为静态的static,则上述程序可以,静态函数可以调用静态成员变量。

静态成员函数一般使用情况:

1、一个方法不需要访问对象,其所需参数都是通过显示参数提供;

2、一个方法只需要访问静态域。

静态代码块,即为static{“静态代码块”};如下面代码

public class Person{
static{
System.out.println("我是静态代码块");
}
static String name;
static void func(){
System.out.println("my name is"+name);
}
}
上述类中,没有main函数,但是在执行时可以看到先打出了“我是静态代码块”,然后在提示错误缺少函数。说明静态代码块在装载类的时候就执行了。Java的执行过程是,先将类装载到内存,虚拟机中,然后解释,执行。静态代码块在装载时就执行,静态代码块主要是用来将成员变量初始化赋初值。