【转】【Java】static在类定义中的作用

1 共享数据

 

public class MathUtil{

public static final double PI=3.1415925;

}

    这个PI被static修饰后,要想使用,必须通过“类名.静态成员变量名”这种方法使用。

 

2 共享操作

 

      对方法修饰符的定义时,static表示修饰的方法是一个属于类所有的方法,可以通过“类名.方法名(...)”来引用。之所以规定如此的特性,是因为实际中某些对象所应具备的能力不因对象的改变而改变,而是按照一个所有该类对象均应遵循的规则来执行,如三角函数的计算、字符串的处理等。把这些能力定义到每个对象中没有必要,所以就出现了应把他们归属为类所有,有所有对象共享。

 

3 类初始化

 

       构造函数通常是对象在被创建时执行某些初始化的工作,那么,类在初次加载到内存的时候,如果希望也能执行一些初始化的工作,应把类加载时执行的代码放在“初始化块”中。如下:

static{

....

}

       她在类体当中存在的位置是独立的,可以放在任何合适的位置。这个初始化块与构造函数不同的是它没有函数名,也灭有访问控制修饰符,只有一个static来表明它的作用。而且,该初始化块只是在类加载时被执行一次,而且只被执行一次,其代码执行优先于对象创建。

public class Circle
{
static final double PI=3.1415926;
double x;
double y;
double radius;

static
{
   System.out.println("Running Circle's initialization block code");
}

public Circle(double x,double y,double radius)
{
   this.x=x;
   this.y=y;
   this.radius=radius;
}

public static double getArea(double radius)
{
   return PI*radius*radius;
}

public double getCircumference()
{
   return PI*radius*2;
}

public static void main(String[] args)
{
   Circle c=new Circle(10,10,3.0);
   System.out.println("The circle'ara is "+c.getArea(c.radius));
   System.out.println("The circle'circumference is "+c.getCircumference());
}
}

     注意:用static修饰的语法成分属于类所有,对象可以直接使用,但不属于对象所有,因此用static修饰的语法成分中的代码不能使用任何属于该类对象所有的成员属性、成员方法。

 

Tag:此文转自百度空间“人各有命”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值