static关键字相关内容
- 静态变量(static)与非静态变量,静态方法(static)与非静态方法
//static
public class Student {
private static int age; //静态的变量(静态属性)
private double score; //非静态的变量
public void run(){ //非静态方法
}
public static void go(){ //静态方法
}
public static void main(String[] args) {
//run();//编译错误,非静态方法不能直接使用
new Student().run();//必须将对象实例化后再调用非静态方法
Student student = new Student();//两种不同的实例化方式
student.run();
go();//静态方法可直接使用
Student.go();
}
/*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);
}*/
}
- 类中匿名代码块,静态代码块(加载类的同时加载,只执行一次)及构造方法执行顺序
public class Person {
{
//代码块(匿名代码块)
}
static {
//静态代码块
}
//程序执行的先后顺序 1 2 3
//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();
}
}
- 静态导入包
- 被final关键字修饰的类不能有子类,不能被继承
//静态导入包,导入后可不输入Math.random(),直接使用random()
//被final修饰的类不能再被继承,不能有子类
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);
}
}
作者:wangyudong
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。