Day57 Static关键字详解

Static关键字详解

static 加在方法上叫 静态方法

static 加在属性上叫 静态属性

1.static

package com.oop.demo09;

//static
public class Student {

    //一.静态属性
    private static int age;//  加了static  是静态的变量    多线程!
    private double score; //没有static      非静态的变量

    //二.静态方法
    public void run(){ //非静态方法
    //下面main方法里面要调用这个方法必须  先new一个Student     在main方法里面写 new Student().run(); 才能调用

        go();//非静态方法可以去调用静态方法里面的东西
    }

    public static void go(){  //静态方法
        //下面main方法   可以直接Student.go();  或者go();   调用
        //静态方法跟类一起加载。。。所以后面加载的非静态方法可以调用这里的东西
    }

    public static void main(String[] args) {
        
        Student s1 = new Student();
        
        System.out.println(Student.age);//静态属性   直接通过类Student.age调用
      //若把上一行代码Student.age换成Student.score就会报错
        //因为score是非静态的变量  没有加static     不能这样调用  程序会报错

        System.out.println(s1.age);//通过对象s1调用age和score    前提:要new一个Student类
        System.out.println(s1.score);

    }
}

2.代码块扩展

package com.oop.demo09;

public class Person {

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

结果是:

静态代码块
匿名代码块
构造方法
============================
匿名代码块
构造方法

由此可见 程序首先执行静态代码块(且只执行一次)

然后执行 匿名代码块 然后构造方法

3.静态导入包及final修饰符

package com.oop.demo09;

//静态导入包~
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(Math.random());这个是生成一个随机数的意思   要是不导入包  正常要这么写 得多写Math
        System.out.println(PI);

        //通过final修饰的类    另一个类无法通过extends继承    final之后断子绝孙

    }
}
posted @   白小帆  阅读(6)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示