注意:static不能修饰构造方法
(1)static修饰方法
public class Hello{
public static void main(String[] args){
//TODO 添加代码
}
}
注意:在static修饰的方法中,不能调用没有static修饰的方法和属性,也不能使用this与super关键字。
(2)static修饰属性
当static修饰属性时,静态属性具有一个特性,那就是该属性被多个对象共享,一个对象修改静态属性值后,会影响其他对象。public class Test{
private static String name;
private static int age;
public Test(){
age++;
}
public static void main(String[] args) {
Test t1 = new Test();
System.out.println(t1.age); //1
Test t2 = new Test();
System.out.println(t2.age); //2
}
}
(3)static修饰代码块
代码块是java类中由{}括起来的代码段,并且在构造方法之前运行,因此可以将一部分初试化代码放在代码块中。
当使用static修饰代码块时,代码块将变成静态代码块,通常用于初始化静态变量。静态代码块与类相关,因此只要类被加载,即使没有创建对象,也将被执行。此外静态代码块无论创建几个对象,仅执行一次。
public class Test{
private static int age;
static{
System.out.println("代码块将被执行");
age++;
}
public void show(){
System.out.println(age);
}
public static void main(String[] args) {
Test t1 = new Test();
System.out.println(t1.age);
Test t2 = new Test();
System.out.println(t2.age);
}
}