static关键字
- static 在类中修饰成员变量,在方法中则修饰成员方法
- static 在属性中叫做静态属性,在方法中叫做静态方法
- 静态方法和非静态方法可以调用静态方法里面的所有东西,非静态方法不可以调用静态方法里面的东西(static跟随类一起加载)
语法实例
//static
//在类中修饰成员变量,在方法中则修饰成员方法
public class Student {
//在属性中叫做静态属性,在方法中叫做静态方法
//静态属性
private static int age;
private double score;
//静态方法
//静态方法和非静态方法可以调用静态方法里面的所有东西,非静态方法不可以调用静态方法里面的东西(static跟随类一起加载)
public void run(){
go();
}
public static void go(){
}
public static void main(String[] args) {
Student s1 = new Student();
//静态属性可以直接使用类名访问
System.out.println(Student.age);
System.out.println(s1.age);
System.out.println(s1.score);
go();
new Student().run();
}
}
代码块
{
//匿名代码块
}
static {
//静态代码块
}
语法实例
public class Person {
{//匿名代码块可以给程序赋一些初始值
System.out.println("匿名代码块");
}
static {//只执行一次
System.out.println("静态代码块");
}
public Person(){
System.out.println("构造方法");
}
public static void main(String[] args) {
Person person = new Person();
}
}
- 在运行中,静态代码块优先执行(和类一起加载),其次是匿名代码块,随后则是构造器
引用库
- 在代码中使用static 关键字引用库会减少代码使用
语法实例
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);
}
}
/*run:
0.9850102843346941
3.141592653589793
*/