1 static 方法可以调用 static方法
2 不是static方法必须new一个对象 才可以调用
3 引入静态方法报 import static java.lang.Math.Radom; random是一个产生随机数的函数 这样子引用可以直接使用
例子1
public class Student { private static int age;//静态变量 private double score;//非静态变量 public void run(){ go(); } public static void go(){ // run();//go方法跟类一起加载 都没run 报错,执行不了 } public static void main(String[] args) { Student student = new Student(); System.out.println(Student.age); //类变量可以直接调用,后面多线程可以用到 System.out.println(student.score); Student.go(); //和变量一样 也可以直接写go(); go(); //静态方法和类一起加载 因此可以执行 new Student().run(); //必须new一个才能调用非静态方法 } }
例子2
public class Person { // 执行顺序123 // 1只执行一次 static { System.out.println("静态代码块"); } // 2 付初始值 { System.out.println("匿名代码块"); } // 3 public Person() { System.out.println("构造方法"); } public static void main(String[] args) { new Person(); System.out.println("再new一次-------"); new Person(); } }
运行结果:
静态代码块
匿名代码块
构造方法
再new一次-------
匿名代码块
构造方法
Process finished with exit code 0
例子3
public class Test { public static void main(String[] args) { System.out.println(Math.random()); } }
例子3每次生成一个随机数都需要那样子写 很麻烦
所以在头部可以
静态引入包
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.6672320266480005
3.141592653589793
Process finished with exit code 0