设为首页 加入收藏

TOP

4.4.3 静态方法
2013-10-07 00:26:24 来源: 作者: 【 】 浏览:50
Tags:4.4.3 静态 方法

4.4.3   静态方法

静态方法是一种不能向对象实施操作的方法。例如,Math类的pow方法就是一个静态方法。表达式

 

计算幂xa。在运算时,不使用任何Math对象。换句话说,没有隐式的参数。

可以认为静态方法是没有this参数的方法(在一个非静态的方法中,this参数表示这个方法的隐式参数)。

因为静态方法不能操作对象,所以不能在静态方法中访问实例域。但是,静态方法可以访问自身类中的静态域。下面是使用这种静态方法的一个示例:

 
可以通过类名调用这个方法:
 

这个方法可以省略关键字static吗?答案是肯定的。但是,需要通过Employee类对象的引用调用这个方法。

注释:可以使用对象调用静态方法。例如,如果harry是一个Employee对象,可以用harry.getNextId( )代替Employee.getnextId( )。不过,这种方式很容易造成混淆,其原因是getNextId方法计算的结果与harry毫无关系。我们建议使用类名,而不是对象来调用静态方法。

在下面两种情况下使用静态方法:

一个方法不需要访问对象状态,其所需参数都是通过显式参数提供(例如:Math.pow)。

一个方法只需要访问类的静态域(例如:Employee.getNextId)。

C++(www.cppentry.com)注释:Java中的静态域与静态方法在功能上与C++(www.cppentry.com)相同。但是,语法书写上却稍有所不同。在C++(www.cppentry.com)中,使用::操作符访问自身作用域之外的静态域和静态方法,如Math::PI。

术语“static”有一段不寻常的历史。起初,C引入关键字static是为了表示退出一个块后依然存在的局部变量。在这种情况下,术语“static”是有意义的:变量一直存在,当再次进入该块时仍然存在。随后,static在C中有了第二种含义,表示不能被其他文件访问的全局变量和函数。为了避免引入一个新的关键字,关键字static被重用了。最后,C++(www.cppentry.com)第三次重用了这个关键字,与前面赋予的含义完全不一样,这里将其解释为:属于类且不属于类对象的变量和函数。这个含义与Java 相同。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.6.5 参数名 下一篇4.7.3 将类放入包中

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: