java 基础篇--static关键字释义

本文深入解析了Java中Static关键字的作用及用法,包括如何利用Static实现单一存储空间的分配及无需创建对象即可调用的方法。此外,还探讨了Static与This关键字的区别。

Static 关键字

     我们都知道创建类就是对一个类对象的外观与行为的描述,通常情况下只有用 new 创建类对象的时候才能真正分配到数据存储空间,外界才能真正调用起方法。但是有两种情况特殊:

1.    只想为某特定区域分配单一存储空间,不考虑创建多少对象,甚至不创建任何对象。

2.    希望某方法不与所在类的任何对象关联在一起。即使没有对象,也能被外界调用。

我们都知道普通的方法和域必须知道他们一起运作的特定对象。但是由于static 关键字修饰的域或者方法不与所在类的任何对象实例关联,所以 static 可以满足这两方面的需求。

static 修饰的域或者方法既可以像普通域或者方法那样通过对象定位。也可以直接通过类名直接引用。非静态成员则不可。而且一般推荐使用类名直接引用,不仅可以强调变量的 static 结构,还有利于编译器进行优化。

// 类对象定位
ClassA aClass = new ClassA();
aClass.a;
// 类名直接引用
ClassA.a ; 

另外,static 作用于某字段时会改变数据创建的方式,因为 static 修饰的关键字对于每个类对象都只有一个存储空间,而非静态字段则是每个对象都有一个存储空间。但是 static 作用于某个方法差别却不是很大,static 方法的重要用法在于不创建任何对象的情况下调用。

static 与 this 关键字

这里需要简单介绍一下 this 关键字的一些特性。this 关键字主要用于在方法内部获得对当前对象的引用,而这个引用是编译器“偷偷”传入的没有特殊标识符。this 的用法与其他对象的引用并无不同,只是若在方法内部调用同一个方法的另一个方法则不必使用。见过太多人编码风格习惯全部加上 this,看着也是难受。另外 this 也用于将对象传递给其他方法或者在构造器中调用构造器时使用(后者有些限制,这里不多解释)。

而 static 就是没有 this 的方法,因为 static 内部不能调用非静态方法。static 修饰的方法很像是全局方法, java 中不允许设置全局方法,但是类中置入 static 方法就可以访问其他类的 static 域和方法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值