static关键字

1、可修饰:属性、方法、内部类

2、static修饰的变量为静态变量

属性:按是否用静态变量修饰可以分为静态变量和非静态变量(实例变量)

        静态变量:创建多个对象,多个对象共享一个静态变量,通过一个变量修改,会导致静态变量已经修改

以下是用于测试的类

public class Person
{
    private String name;
    private int age = 1;
    private boolean isMale;
    static String language;
    public void eat()
    {
        System.out.println("人可以吃饭");
    }
    public void sleep()
    {
        System.out.println("人可以睡觉");
    }
    public void talk(String language)
    {
        System.out.println("人可以说话,使用的是:"+language);
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public boolean isMale() {
        return isMale;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setMale(boolean male) {
        isMale = male;
    }

};

测试代码

public class Persontext
{
    public static void main(String[] args) {
        Person p1=new Person();
        p1.language="chinese";
        Person p2=new Person();
        System.out.print(p2.language);
    }
};

结果如下

3、静态变量随着类的加载而加载,且类的加载早于对象的加载,静态变量的加载早于对象的创建,可以用“类.属性”的方式调用静态变量

public class Persontext
{
    public static void main(String[] args) {
        Person.language="chinese";
        Person p2=new Person();
        System.out.print(p2.language);
    }
};

结果为

 注:由于类只加载一次,则静态变量在内存里也只存储一份,而且存储在方法区的静态变量

方法区:类的加载信息,静态域,常量池

4、静态修饰方法

(1)随类的加载而加载,能以“类.方法”的形式出现

(2)静态方法中只能调用静态方法或者属性,非静态方法中都可以调用,从生命周期的角度来考虑这个点,静态方法随着类的加载而加载,如果调用非静态属性或者非静态方法,在静态方法加载的时候,他们还没有加载,根本没有办法直接利用

基本静态方法的使用可以参考静态变量,但是静态方法较之静态变量会多一个引用方面的注意事项

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值