java 静态成员_java中的static关键字和静态成员

在java中声明类的成员变量和成员方法时,可以使用static关键字把成员声明为静态成员。静态变量也叫类变量,非静态变量叫实例变量,静态方法也叫类方法,非静态方法叫实例方法。

类变量属于整个类,一个类可以创建多个对象,但类的每个静态变量在内存中只有一份拷贝为该类的所有对象共享。类变量(类方法)不用创建对象就可以直接通过类名访问。下面举例说明类变量与实例变量的区别:

class UseBook{

String     name;

float       price;

int        count=0;   //实例变量,记录创建对象的个数

static    int     bookNumber=100;//静态变量,书的起始编号为100

UseBook(String n,float p){

name = n;

price = p;

count++;

bookNumber++;

}

void    output(){

prt("name: " + name + "\t" + "price: " + price + "\t");

prt("bookNumber: " + bookNumber + "\t" + "count: " + count + "\t") ;

}

public static void prt(String s){

System.out.print(s);

}

public static void main(String[] args){

UseBook    b1,b2,b3;

b1=new UseBook("java2",36.0f);

b1.output();

b2=new UseBook("c++",40.0f);

b2.output();

b3=new UseBook("vb",20.0f);

b3.output();

}

}

结果如下所示:

name: java2            price: 36.0             bookNumber: 101    count: 1

name: c++             price: 40.0             bookNumber: 102     count: 1

name: vb               price: 20.0             bookNumber: 103     count: 1

程序运行说明:程序中定义count的目的是记录创建对象的数目,但运行结果却不是期望的输出。因为每个对象都拥有一个实例变量count,创建对象时,对count加一的操作是对每个对象的count成员而不是对一个唯一的count操作,所以无法记录创建对象的个数。而bookNumber是静态变量,为所有对象共享,所有对象操作的是同一个bookNumber成员变量,每创建一个对象bookNumber值增加1,实现了书的自动编号。

posted on 2007-10-23 15:46 jiafang83 阅读(5406) 评论(9)  编辑  收藏

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值