java中静态域,静态常量,静态方法

静态域:如果将类中的域定义为static,则这个域属于这个类,而不属于这个类的某个对象,每个类中只有 一个这样的域,而每一个类对象对于所有的实例域(即没有定义为static的域)都有自己的一份拷贝。例如:

class Employee

{

  ……

  private int id;

  private static int nextId = 1;

}

如果有1000个Employee对象,则有1000个实例域id,但是只有一个静态域nextId;即使没有一个Employee对象,静态域nextId也存在,它属于类,不属于任何对象。

静态域也成为类域。

  静态常量:如果一个域被定义为static final,则这个域就是一个静态常量。不能省略任何一个关键字,若是少了static,则该域变成了一个实例域,需要由类对象对其进行访问。若是省略了final,则该域变成了静态域,静态方法可以对其进行修改。

例子:

public class Math

{

  ……

  public static final double PI=3.14159265358979323864;

  ……

}

其中PI就是一个静态常量。

  静态方法:静态方法是一种不能向对象实施操作的方法。Math的pow方法就是一个静态方法,在运算时,不使用任何Math对象,换句话说,没有隐式的参数this。因为静态方法不能操作对象,所以不能在静态方法中访问实例域,但是静态方法可以访问自身类中的静态域。可以使用对象调用静态方法,但是这样容易引起混淆,因为计算的结果与对象毫无关系,建议还是使用类名,而不是类对象调用静态方法。

例如:

public static int getNextId( )

{

  return nextId;

}

但是,如果去掉其中的关键字static,它就成了非静态方法,但是也可以访问类中的静态域,这时就需要由该类的对象来调用该函数。

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

1.一个方法不需要访问对象的状态,其所需的参数都是通过显式的提供

2.一个方法只需访问类的静态域

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值