Static关键字简析

        在《java编程思想》一书中写道:“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来倒是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。它很像全局方法。Java中禁止使用全局方法,但你在类中置入static方法就可以访问其他的static方法和static域。”

        从文中的描述,可以大概了解static的主要作用:在不创建对象的情况下调用方法或者变量。

1)static变量

        static变量也称作静态变量,静态变量和非静态变量的主要区别在于:静态变量被所有对象共享,它只会在类初次加载的时候初始化,在内存中仅有一个副本。而非静态变量则为各个对象所私有,在对象创建的时候初始化,并且互不干涉。

2)static代码块

        static可以修饰代码块,static代码块可以放置于类中任何位置(方法之外)。当类被加载,会优先执行static代码块中的内容,多个static代码块按照代码顺序依次执行,并且只执行一次。因此,可以将一些只需要进行一次初始化的操作放在static中来执行。

        加载类时,static代码块的内容,会优先于构造器执行。

3)static方法

        static方法也称作静态方法,静态方法与普通方法的主要区别在于:静态方法不依赖与对象,使用“类名.方法名”这种形式即可对方法进行访问,在静态方法中,不能使用this关键字,所以静态方法中不能访问非静态成员变量和非静态方法,反过来可以:在非静态方法中可以访问静态方法和静态成员变量。

        由上图的例子可知,非静态方法对于静态方法和静态变量的访问是无限制的,而静态方法则不能访问非静态方法和非静态变量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值