20240320_01_Static_Practise

本文详细介绍了Java中的静态成员,包括静态代码块、静态变量、静态方法以及它们在类结构中的使用和调用规则。通过实例展示如何在Parent类和Child类中实践静态特性,并在Test类中进行测试。
摘要由CSDN通过智能技术生成

20240320_01_Static_Practise

参考来源:狂神说java

父类Person

package StaticPractise;

public class Person {//用final修饰则不能被继承
    {//(匿名)代码块
        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();//代码块->构造方法
    }
}

子类Student

package StaticPractise;

public class Student extends Person{
    public static int age;//静态变量,类变量,与public或者private无关
    public int score;//非静态变量
    public static void run(){//静态方法
        System.out.println("run了");
    }
    public void go(){
        System.out.println("go了");
        run();//类里非静态方法可以调用静态方法
    }
    public Student(int age , int score) {//有参构造
        this.age = age;//等于Student.age
        this.score = score;
    }

    public static void main(String[] args) {
        Student student = new Student(3,99);
        System.out.println(student.age);//正常调用
        System.out.println(student.score);//正常调用
        System.out.println(Student.age);
        //System.out.println(Student.score);报错
        //加载过一次这个类之后,静态属性可以通过类直接调用
        System.out.println("=================");
        student.go();
        student.run();
        Student.run();//静态方法也可以通过类调用
        run();//或者直接调用
        //go();报错


    }
}

测试类Test

package StaticPractise;

import static StaticPractise.Student.run;//静态导入包

public class Test {
    public static void main(String[] args) {
        Student student = new Student(3,99);
        System.out.println(student.age);//正常调用
        System.out.println(student.score);//正常调用
        System.out.println(Student.age);
        //System.out.println(Student.score);报错
        //加载过一次这个类之后,静态属性可以通过类直接调用
        System.out.println("=================");
        student.go();
        student.run();
        Student.run();
        run();//静态方法也可以通过类调用
    }
}
  • static修饰的方法都是类相关的,不需要创建对象
  • static修饰的变量叫做静态变量,修饰的方法叫做静态方法,都是随着类的加载,即对此类的实例化,时就被执行,固定。
  • 静态变量或静态代码之间遵循自上而下的顺序逐行执行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值