static关键字Java

本文详细介绍了Java中static关键字的使用,包括静态属性和静态方法的特性及生命周期。内容涉及静态变量如何被所有对象共享,静态方法的调用方式,以及何时应声明属性或方法为静态。通过示例代码展示了静态属性和方法的实际应用,帮助读者理解其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java中static关键字的使用

  1. 修饰内容:
    可以修饰属性、方法、代码块、内部类
  2. static修饰属性
    称为静态属性:所有对象都共享同一个静态变量;当通过某一个对象修改静态变量时,其他对象调用改对象时,也是修改之后的
    ① 静态属性随着类的加载而加载,非静态属性随着对象的实例化而加载
    ② 静态属性的加载早于对象的创建
    ③ 类只会加载一次,所以静态变量也只存在一份,存在方法区的静态域中
  3. static修饰方法
    称为静态方法:通过类调用
    ① 随着类的加载而加载,通过"类.静态方法"或者”对象.静态方法“的方式调用
    ② 静态方法中,只能调用静态的方法或属性
    ③ 非静态方法中,既可以调用非静态方法或属性,也可以调用静态的方法或属性
  4. 如何确定一个属性是否要声明为一个静态属性?
    当属性是可以被多个对象所共享的,不会随着对象的不同而不同
  5. 如何确定一个方法是都要声明为一个静态方法?
    ① 操作静态属性的方法,设置为static的
    ② 工具类中的方法,比如Math、Arrays等
  6. 常见问题
    ① 在静态的方法内,不能使用this和super关键字
    ② 关于静态方法和属性的使用,从声明周期考虑比较好理解;
public class statictest {
    public static void main(String[] args) {
        Chinese c1 = new Chinese();
        c1.name = "刘翔";
        c1.age = 35;

        Chinese c2 = new Chinese();
        c2.name = "姚明";
        c2.age = 40;

        c1.nation = "中国国籍";
        System.out.println(c2.nation);

        //类直接调用静态方法
        Chinese.show();
        c2.show1();
        c2.show();
    }
}

class Chinese{
    String name;
    int age;
    static String nation;

    public void show1() {
        System.out.println("我是中国人");
    }

    public static void show() {
        System.out.println("中国");
    }

}

上述代码执行结果:

中国国籍
中国
我是中国人
中国

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值