Java学习第十七天 static补充

直接看代码:

定义了一个Student类:

package com.opp.demo09;

public  class Student extends Person{
//    静态变量
    private static String name = "芝麻干";
//    非静态变量
    private int age = 18;
//    静态方法
    public  static void run(){
        System.out.println("跑");
    }
//    非静态
    public void go(){
        System.out.println("走");
    }

    public static void main(String[] args) {
        System.out.println(Student.name);
        System.out.println(new Student().age);
        Student.run();
        run();
        new Student().go();
    }

}

我先分别定义了静态变量和非静态变量:

来看看它们的区别:

 

 相同的,再来看看静态方法和非静态方法 

 没有实例化会报一个不是静态方法的错误。

在新建一个Person类:

package com.opp.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 person = new Person();
        System.out.println("========================");
        Person person1 = new Person();
    }
}

有新东西:

实例化对象后,运行结果:

第一次实例化类后,先运行的是静态代码块然后是匿名,最后才是构造方法。

 第二次实例化类后 ,静态代码块不在运行了,顺序还是一样:

说明静态方法只执行一次,而且优先级很高

最后再来看一下静态导入包:

生成随机数和圆周率:

package com.opp.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(PI);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芝麻干

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值