static关键字
静态变量
public class Student {
private static int age;//静态的变量
private double score;//非静态的变量
public static void main(String[] args)
{
Student s1=new Student();
//static修饰的变量可以通过类访问和对象访问
System.out.println(s1.age);
System.out.println(Student.age);
//没有static修饰的变量只能通过对象访问
System.out.println(s1.score);
//System.out.println(Student.score); 会报错因为score是属于对象的变量,不能通过类访问
}
}
静态方法
public class Student {
//没有static修饰的方法属于对象,有对象才能调用
public void run()
{
}
//有static修饰的方法属于静态方法,静态方法属于类,可以被类调用
public static void go()
{
}
public static void main(String[] args)
{
go();
}
}
静态代码块
public class Student {
{
//代码块(匿名代码块)
//创建对象时创建
//可以通过匿名代码块来赋初始值
System.out.println("匿名代码块");
}
static{
//静态代码块(匿名代码块)
//类一加载就执行,只执行一次
System.out.println("静态代码块");
}
public Student(){
System.out.println("构造方法");
}
public static void main(String[] args) {
Student s1=new Student();
Student s2=new Student();
}
}
静态导入包
import static java.lang.Math.random;
//导入之后可以直接用random函数
ps:用fianl修饰的类不可以被继承