Static关键字

Static关键字详解

package oop.demo10;

//static :类中使用,修饰成员变量。方法中使用,修饰成员方法,叫静态方法。加在属性中叫静态属性。
public class Student {

    private static int age;//年龄     静态变量    后续多线程详解!
    private double score;//分数       非静态变量

    public void run(){ //非静态方法可以调用静态方法中的所有东西
        go();
    }

    public static void go(){    //静态方法  静态方法只能调用静态方法的东西,不能调用非静态的方法

    }

    public static void main(String[] args){     //main方法也有static,是静态方法

        Student s1 = new Student();
        //静态变量
        System.out.println(Student.age);//静态的变量建议直接用 类名.变量 ,不用new对象。
        //System.out.println(Student.score);score红色报错,非静态字段'score'不能从静态上下文中引用。
        System.out.println(new Student().score);//可以用new的对象来调用
        System.out.println(s1.age);
        System.out.println(s1.score);

        System.out.println("-------------------");

        //静态方法
        //静态方法只能调用静态方法的东西,不能调用非静态的方法
        new Student().run();//直接run();不行,报错,不能调用,要用new对象
        Student.go();//因为启动类在同一个类中,也可以直接go();
    }

}

package oop.demo10;

public class Person {

    {
        //代码块(匿名代码块)一般也不建议这样写
    }

    static {
        //静态代码块(匿名代码块)
    }

}
package oop.demo10;

public class Person01 {

    //匿名代码块可以用来赋初始值
    //第二个执行
    {
        System.out.println("匿名代码块");
    }

    //第一个执行,再输出一次就没了,只执行一次

    static{
        System.out.println("静态代码块");
    }

    //第三个执行
    public Person01() { //构造器快捷键:Alt+Insert,选择Constructor
        System.out.println("构造方法");
    }

    public static void main(String[] args) {
        Person01 p1 = new Person01();
        System.out.println("-----------------");
        Person01 p2 = new Person01();
    }

}

输出:

在这里插入图片描述


package oop.demo10;

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

public class Test {
    public static void main(String[] args) {
        System.out.println(Math.random());//输出一个随机数
        /*
        如果不想写Math.random(),想直接写random()
        import导入java.lang.Math,甚至可以导入Math底下的方法
        import java.lang.Math.random;但是报错,不识别random,可以在import后面加个static
        import static java.lang.Math.random; 这样就可以使用了,这就叫做静态导入包
        */
        System.out.println(random());
        System.out.println(PI);//输出圆周率π
    }
}

/*
扩展:
    被final修饰的类就不能被继承了,没有子类了,断子绝孙!
 */

输出:

在这里插入图片描述

  • 扩展:

Static关键字扩展1

Static关键字扩展2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值