static关键字
实例:
Student类:
public class Student {
private static int age; // 静态变量
private double score; //非静态变量
public static void main(String[] args) {
Student s1 = new Student();
System.out.println(Student.age);
//System.out.println(Student.score); 非静态变量必须在类实例化创建对象后才可使用。
System.out.println(s1.age);
System.out.println(s1.score);
go();
//run(); 非静态方法必须在类实例化创建对象后才可使用
}
public void run(){
go(); //非静态方法可以直接调用静态方法。
}
public static void go(){
go(); //静态方法也可以直接调用静态方法。但是非静态方法无法被直接调用。
}
}
- 在一个类里,static修饰的对象为最先加载,其次是匿名代码块,无参构造器在其后面。
- 静态代码块只加载一次。
- final修饰的类无法继承。
实例:
Person类:
public final class Person {
{
//(匿名代码块)
System.out.println("匿名代码块"); //2
}
static {
//静态代码块,跟类一同加载,只加载一次。
System.out.println("静态代码块"); //1
}
public Person() {
System.out.println("构造方法"); //3
}
public static void main(String[] args) {
Person person1 = new Person();
System.out.println("================================");
Person person2 = new Person();
}
}
- 静态导入包:
// 静态导入包
import static java.lang.Math.random;
import static java.lang.Math.PI;
public class Test {
public static void main(String[] args) {
System.out.println(random());
System.out.println(PI);
}
}