Java——static关键字

这个关键字时一个修饰符,它可以修饰成员变量和成员方法,也可以修饰内部类

被它修饰的成员变量叫做静态变量,修饰的方法叫做静态方法

静态变量和静态方法都可以通过  类名.  的方式来访问

public class Animal {
    static String name;
    static String getName() {
    return name;
}
public static void main(String[] args) {
    Animal animal = new Animal();
    animal.name = "axx";
    System.out.println(animal.getName());
    Animal.name = "小狗";
    System.out.println(Animal.getName());
}
}

注意:在程序中不能都用 static 关键字来修饰属性和方法

static 的生命周期

所谓生命周期就是对象从创建到消亡的过程。
如果我们的属性没有被 static 修饰,那么它的生命周期是在执 new 操作时才开始,直到这个对象使用完就结束。
如果我们的属性是被 static 修饰的,那么它的生命周期是在这个类加载到内存中后就开始,直到 JVM 关闭所以不 是所有的都需要使用这个关键字来修改,因为它的生命周期太长, 不便 于内存的回收。一般情况下,我们会在工具类别来使用这个关键字,便 于好使用这个方法。
一般来说,我们使用了 static 来修饰变 时,我们通过会再与 final 这个关键字一起。这个关键字后续再介绍。

使用 static 的注意事项

public class Animal {
    private int age;
    static String name;
    static String getName() {
        this.age = 18;
        return name;
    }
}
在上面的代码中的 getName() 静态方法内使用的 this 这个关键字,发现要报如下的错误: 'com.openlab.entity.Animal.this' cannot be referenced from a static context 这个错误信息的意思是 this 关键字 能使用在静态代码块中。
原因:this 代表的对象, 而对象是在 new 操作时才产生,而被 static 修饰的属性或方法是在类加载时就已经存在了,所以他们的生命周期不一样,即被 static 修饰的生命周期早于 this 对象的生命周期,所以会报错
注意:在静态方法中不能使用 this 关键字,当然也不能使用 this 来调用构造方法,如果希望在静态方法中使用成员变量,那么这个成员变量也应该是静态的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值