20-static

static

属性和方法

//static
public class Student {
    private static int age;//静态变量,,可以用类名访问
    private double score;//非静态变量
    public void run(){
    }
    public static void go(){
    }
    public static void main(String[] args) {
        Student s1 = new Student();

        System.out.println(Student.age);//Student.age --类变量
        //System.out.println(Student.score);报错,非静态变量,无法用类变量直接得到
        System.out.println(s1.age);
        System.out.println(s1.score);
        Student.go();//也可以直接go();  静态方法 跟类一起加载
        //run();Student.run();不可以,必须使用对象,如s1.run();
    }
}

代码块

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;//不用Math.random();  直接用random;
import static java.lang.Math.PI;//在后面可以直接使用PI

public class Test {
    public static void main(String[] args) {
        System.out.println(random());//随机数
        System.out.println(PI);
    }
}

另外

  • 被final修饰的类不能被继承,即没有子类(断子绝孙)
posted @ 2024-06-24 18:06  呆头尖瓜  阅读(3)  评论(0编辑  收藏  举报