Static——静态

static

  • 静态
  • 静态成员属于类,而不属于对象
  • 调用静态成员,一般使用类名调用
      s1 = new Soldier()
      s2 = new Soldier()
      s1.count = 1;//容易误解成对象的属性
      s2.count = 2;
      print(s1.count)
      
      ---------------
      
      Soldier.count = 1;
      Soldier.count = 2;
  • 什么时候使用静态

    *)静态使用的原则: 能不用就不用

      *)静态不属于对象,是“非面向对象”的语法
    
      *)使用场景:
          *)共享的数据
                节省内存
          
          *)工具方法  
    
		    Math.sqrt()
            Math.random()
            Integer.parseInt()
            String.valueOf()
  • 静态方法中,只能调用静态成员,不能直接调用非静态成员

    *)由于被static修饰的成员与对象无关,所以,某个类中被static修饰的成员仅会存在1个,无论用类名去引用,或用该类的某个对象去引用,访问到的都是同一个数据!所以,被static修饰的属性在一定程度上可以理解为是“共享的”!

*)被static修饰的成员将最优先加载到内存中,且最后才会被释放内存,所以,被static修饰的成员是“常驻内存的”!

    class A {
          public static void main(String[] args) {
              f();
              
              A a = new A();
              a.g();
          }
          
          static void f() {
          }
          
          void g() {
          }
      }
  • 静态初始化块
     class A {
          static {
              执行一些初始化工作
              在类被加载时,只执行一次
          }
      }

由于被static修饰的成员与对象无关,所以,某个类中被static修饰的成员仅会存在1个,无论用类名去引用,或用该类的某个对象去引用,访问到的都是同一个数据!所以,被static修饰的属性在一定程度上可以理解为是“共享的”!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值