Java中static

首页 > Java中static > 列表

Java中static

static

1.静态/非静态变量

eg:

private static int age;  // 静态变量
private double score;   //非静态变量

在调用age时,直接通过 类名.age 即可访问;

而score 必须通过创建对象来调用。

2.静态/非静态方法

eg:

//非静态方法
public  void run(){

}

//静态方法
public static void go(){

}

同样,同类主函数调用go()时,可以通过 类名.go() go(),来进行调用方法,run方法则需要通过对象。

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();
}

输出结果:

静态代码块
匿名代码块

==================

匿名代码块
构造方法

总结:

  1. 在创建对象后,上述两个代码块以及构造方法都会被调用,顺序为 静态代码块 匿名代码块 》 构造方法
  2. 静态代码块永久被调用1次,再次创建对象后不会被调用

4.静态导入包

当你觉得写下 Math.random() 多次很烦时,可以使用静态导入包:

//静态导入包
import static java.lang.Math.PI;
import static java.lang.Math.random;

public class Test {

    public static void main(String[] args) {
        System.out.println(random());
        System.out.println(PI);
    }
}

此时直接写random(),或者是PI即可。

5.题外话

当 final 修饰一个类之后,相当于做了一个结扎手术,他不能再拥有子类;

而这个类能继承其他类