33、Java基础之static

本文详细介绍了Java中静态与非静态方法的区别和使用场景,包括静态方法可以直接调用静态方法,调用非静态方法需要通过对象,以及静态导入的使用。同时,解释了静态代码块、匿名代码块和构造方法的执行顺序。示例代码展示了静态变量和非静态方法的调用方式,强调了静态成员可以通过类名直接访问的特点。
摘要由CSDN通过智能技术生成

static

  • 非静态方法可以直接调用 静态 和 非静态 的方法
  • 静态方法
    1、可以直接调用静态的方法
    2、调用非静态的方法需要通过新建对象才可以完成
  • 添加静态导入包后 可以直接当作定义的变量使用
import static java.lang.Math.random;
import static java.lang.Math.PI;
System.out.println(random());
System.out.println(PI);
  • 由于是静态变量,可以通过 类名.属性名 直接访问
    非静态要靠 新建对象 对象 . 属性名 访问
System.out.println(C9StaticXiangJie.name);
  • 静态代码块、匿名代码块、构造方法
static {
    System.out.println("静态代码块,最先执行,且仅执行一次");
}

{
    /**
     * 常在这里赋初值
     */
    System.out.println("匿名代码块,第二顺序执行");
}

public C9StaticXiangJie() {
    System.out.println("构造方法,第三位");
}

实例

/**
 * 静态导入
 */

import static java.lang.Math.random;
import static java.lang.Math.PI;
/**
 * @author Mi
 * @version 1.0
 * @description: TODO
 * @date 2022/1/19 18:11
 */

/**
 * 当类被 final 修饰,这个类不可以被继承
 * public final class C9StaticXiangJie {
 */
public class C9StaticXiangJie {
    private static String name; //静态变量
    private int age;

    {
        /**
         * 常在这里赋初值
         */
        System.out.println("匿名代码块,第二顺序执行");
    }

    public C9StaticXiangJie() {
        System.out.println("构造方法,第三位");
    }

    static {
        System.out.println("静态代码块,最先执行,且仅执行一次");
    }


    /**
     * 非静态方法可以直接调用 静态 和 非静态 的方法
     */
    private void say(){
        System.out.println("春花秋月何时了");
        say1();
//        say();
    }

    private static void say1(){
        System.out.println("红楼隔雨相望冷");
    }

    /**
     * 静态方法
     *     1、可以直接调用静态的方法
     *     2、调用非静态的方法需要通过新建对象才可以完成
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(Math.random());

        /**
         * 添加静态导入包后 可以直接random()输出随机数
         */
        System.out.println(random());
        System.out.println(PI);
        C9StaticXiangJie staticword = new C9StaticXiangJie();
        System.out.println("===============================");
        C9StaticXiangJie staticword1 = new C9StaticXiangJie();
        System.out.println("===============================");

        System.out.println(staticword.age);
        System.out.println(staticword.name);

        /**
         * 由于是静态变量,可以通过 类名.属性名  直接访问
         */
        System.out.println(C9StaticXiangJie.name);

        C9StaticXiangJie.say1();

        staticword.say();
        say1();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值