package OrangeWater.oop.demo06;
//static
public class Student {
private static int age; //静态的变量,对于类而言在内存中只有一个,它能被类中的所有实例所共享
private double score; //非静态的变量
public static void go(){//静态的方法
}
public void run(){//非静态的方法
}
public static void main(String[] args) {
Student s1 = new Student();
System.out.println(Student.age); //通过类来调用age
//System.out.println(Student.score); //通过类来调用score会报错
//只有静态变量才能直接通过类来访问,
System.out.println(s1.age); //通过实例化的对象来调用age
System.out.println(s1.score); //通过实例化的对象来调用score
}
}
package OrangeWater.oop.demo06;
public class Person {
//第2执行,可以在这里赋初始值
{
System.out.println("匿名代码块");
}
//第1执行,只执行一次
static {
System.out.println("静态代码块");
}
//第3执行
public Person(){
System.out.println("构造方法");
}
public static void main(String[] args) {
Person person1 = new Person();
System.out.println("-------------------------------");
Person person2 = new Person();
}
}
/*
运行结果:
静态代码块
匿名代码块
构造方法
-------------------------------
(静态代码块只执行一次)
匿名代码块
构造方法
*/
同样也可以静态导入包
package OrangeWater.oop.demo06;
//静态导入包
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);
}
}