Java中的静态(static)
static关键字可以使用在方法,成员属性,代码块上。
- 静态属性和静态方法
public class Hello {
// 静态属性hello1和静态方法show
public static String hello1;
public static void show(){
System.out.println(Hello.hello1);
}
}
public static void main(String[] args) {
// 直接通过类名调用
Hello.hello1 = "你好";
Hello.show;
// 创建一个对象,通过对象调用
Hello hello = new Hello();
hello.show();
}
// 控制台输出如下:
// 你好
// 你好
由上述代码可知,静态属性和静态方法可以直接通过类名调用,并且它们是属于类的。即使你创建对象调用,还是原来的值。使用对象调用时,Java其实是将对象名转换成类名来调用的。当你使用静态的方法和属性时,应该使用类名来调用。
- 静态代码块和实例代码块
- 静态代码块
static{
// 这是一个静态代码块
}
静态代码块在类加载时,会执行:
public class Hello {
static{
System.out.println("静态代码块被执行了");
}
}
public static void main(String[] args) {
// 创建一个对象
Hello hello = new Hello();
}
// 控制台输出如下:
// 静态代码块被执行了
- 实例代码块
{
// 这是一个实例代码块
}
实例代码块在对象初始化时,会执行:
public class Hello {
static{
System.out.println("实例代码块被执行了");
}
}
public static void main(String[] args) {
// 创建一个对象
Hello hello = new Hello();
}
// 控制台输出如下:
// 实例代码块被执行了