Static介绍
可以实现定义静态变量和静态方法
使用规则
静态变量可以被被静态方法和动态方法使用
动态变量不可以在静态方法里面使用
package com.oop.demo03;
public class Student {
private static int age;//静态变量
private String name;//动态变量
public void run(){
System.out.println("我是非静态方法");
//静态变量可以被使用
age=10;
}
public static void say(){
System.out.println("我是静态方法");
//动态变量不可以使用在静态方法里面
name="袋子";//这样写是错误的,因为name是一个动态变量
}
public static void main(String[] args) {
name="加油";//因为name是非静态变量,所以无法直接使用
age=10;//age是静态变量,可以直接使用
say();//静态类方法可以直接调用
run();//这样调用是错的,因为run不是静态类方法,不能直接被主函数调用
//我们需要如下调用非静态类的方法
new Student().run();
}
}
代码块介绍
package com.oop.demo03;
public class Person {
{
//匿名代码块
System.out.println("这是匿名代码块");
}
static {
//静态代码块
System.out.println("这是静态代码块");
}
public void people(){
System.out.println("我是类里面的一个方法");
}
public static void main(String[] args) {
Person p1 = new Person();
p1.people();
}
}
代码块执行顺序
首先执行的是静态代码块 然后才执行匿名代码块
静态导入包
静态导入包的好处就是不用方法点出来,可以直接使用。
语法:import static + 包名
package com.oop.demo03;
//静态导入包
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);
}
}