一、静态变量、静态方法、非静态变量、非静态方法
- 静态方法可以直接使用静态变量和静态方法;
- 非静态方法可以直接使用静态变量、静态方法、非静态变量、非静态方法;
- 静态方法不能使用非静态变量、非静态方法。
package com.jacyzhu.oop.demo09;
public class Student {
private static int age;
private double score;
public void run() {
go();
}
public static void go() {
System.out.println(age);
}
public static void main(String[] args) {
Student s1 = new Student();
System.out.println(Student.age);
System.out.println(age);
System.out.println(s1.score);
s1.run();
Student.go();
go();
}
}
二、代码块、静态代码块、构造方法
- 执行顺序:静态代码块、代码块、构造方法
- 静态代码块只执行一次
package com.jacyzhu.oop.demo09;
public class Person {
{
System.out.println("匿名代码块");
}
static {
System.out.println("静态代码块");
}
public Person() {
System.out.println("构造方法");
}
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;
package com.jacyzhu.oop.demo09;
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);
}
}
运行结果:
0.21107364067262757
3.141592653589793