static
- 非静态方法可以直接调用 静态 和 非静态 的方法
- 静态方法
1、可以直接调用静态的方法
2、调用非静态的方法需要通过新建对象才可以完成 - 添加静态导入包后 可以直接当作定义的变量使用
import static java.lang.Math.random;
import static java.lang.Math.PI;
System.out.println(random());
System.out.println(PI);
- 由于是静态变量,可以通过 类名.属性名 直接访问
非静态要靠 新建对象 对象 . 属性名 访问
System.out.println(C9StaticXiangJie.name);
- 静态代码块、匿名代码块、构造方法
static {
System.out.println("静态代码块,最先执行,且仅执行一次");
}
{
/**
* 常在这里赋初值
*/
System.out.println("匿名代码块,第二顺序执行");
}
public C9StaticXiangJie() {
System.out.println("构造方法,第三位");
}
实例
/**
* 静态导入
*/
import static java.lang.Math.random;
import static java.lang.Math.PI;
/**
* @author Mi
* @version 1.0
* @description: TODO
* @date 2022/1/19 18:11
*/
/**
* 当类被 final 修饰,这个类不可以被继承
* public final class C9StaticXiangJie {
*/
public class C9StaticXiangJie {
private static String name; //静态变量
private int age;
{
/**
* 常在这里赋初值
*/
System.out.println("匿名代码块,第二顺序执行");
}
public C9StaticXiangJie() {
System.out.println("构造方法,第三位");
}
static {
System.out.println("静态代码块,最先执行,且仅执行一次");
}
/**
* 非静态方法可以直接调用 静态 和 非静态 的方法
*/
private void say(){
System.out.println("春花秋月何时了");
say1();
// say();
}
private static void say1(){
System.out.println("红楼隔雨相望冷");
}
/**
* 静态方法
* 1、可以直接调用静态的方法
* 2、调用非静态的方法需要通过新建对象才可以完成
* @param args
*/
public static void main(String[] args) {
System.out.println(Math.random());
/**
* 添加静态导入包后 可以直接random()输出随机数
*/
System.out.println(random());
System.out.println(PI);
C9StaticXiangJie staticword = new C9StaticXiangJie();
System.out.println("===============================");
C9StaticXiangJie staticword1 = new C9StaticXiangJie();
System.out.println("===============================");
System.out.println(staticword.age);
System.out.println(staticword.name);
/**
* 由于是静态变量,可以通过 类名.属性名 直接访问
*/
System.out.println(C9StaticXiangJie.name);
C9StaticXiangJie.say1();
staticword.say();
say1();
}
}