static关键词

static:静态的
用来修饰属性(成员变量),则该属性就成为类属性(不依赖于某个对象而存在),所有该类的实例对象公用这一个属性,任何一个实例改变了静态属性值,大家看到的都是修改过的值。在内存中static属性是所有类实例共有的内存地址。static来修饰方法,则该方法就成为静态方法,可以直接通过类名访问,一般在工具类中定义工具方法。
静态变量和实例变量的区别:

  • 实例变量,依赖于实例对象而存在。访问实例变量的时候,必须通过实例对象来访问

  • 实例变量,在内存中可以有多份(内存中创建了多少实例对象,就有多少实例变量)每个实例对象的实例变量互不影响。

  • 静态变量,不依赖于对象而存在。直接和类关联,可以通过类名来访问。

  • 静态变量,在内存中只有一份,被所有实例对象共享。
    static的使用场景:

  • static修饰的变量叫静态变量

  • static修饰的方法叫静态方法

  • static修饰的代码块叫静态代码块

public class MyStatic {
    //定义静态变量
    static int age;
    public static void test(){
        //静态方法可以直接调用静态变量
        System.out.println(age);
    }
    //静态代码块会被直接执行并输出
    static{
        System.out.println("我是静态代码块");
    }

    public static void main(String[] args) {
        //通过类名调用静态方法和变量
        //MyStatic.age=15;
        //MyStatic.test();
        //通过创建对象来调用静态方法和变量
        //MyStatic s1 = new  MyStatic();
        //s1.age = 10;
        //s1.test();
    }
}

static的特点:
所有静态(静态变量和静态方法)都属于类(全局)

  • 静态属性和静态方法可以直接通过类名.静态属性 类名.静态方法()来使用,这是推荐的方式。当然也可以通过实例对象来访问静态属性和静态方法,但是这种做法是不推荐的
  • 静态方法中,只能访问静态属性和其它静态方法,不能访问实例属性和实例方法
  • 实例方法中,可以访问静态属性和静态方法,也可以访问实例属性和实例方法
  • 静态代码块,在类被加载是自动调用。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值