java类成员和实例成员,Java 实例成员和类成员

用static 关键字可以声明类变量和类方法,其格式如下:

static type classVar;

static returnType classMethod({paramlist}) {

}

如果在声明时不用static 关键字修饰,则声明为实例变量和实例方法。

1) 实例变量和类变量

每个对象的实例变量都分配内存,通过该对象来访问这些实例变量,不同的实例变量是不同的。

类变量仅在生成第一个对象时分配内存,所有实例对象共享同一个类变量,每个实例对象对类变量的改变都会影响到其它的实例对象。类变量可通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量。

2) 实例方法和类方法

实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,实例方法由实例对象调用。

但类方法不能访问实例变量,只能访问类变量。类方法可以由类名直接调用,也可由实例对象进行调用。类方法中不能使用this或super关键字。

例3-7 是关于实例成员和类成员的例子。

【例3-7】

class Member {

static int classVar;

int instanceVar;

static void setClassVar(int i) {

classVar=i;

// instanceVar=i; // 类方法不能访问实例变量

}

static int getClassVar()

{ return classVar; }

void setInstanceVar(int i)

{ classVar=i; //实例方法不但可以访问类变量,也可以实例变量

instanceVar=i; }

int getInstanceVar( )

{ return instanceVar; }

}

public class MemberTest{

public static void main(String args[]) {

Member m1=new member();

Member m2=new member();

m1.setClassVar(1);

m2.setClassVar(2);

System.out.println("m1.classVar="+m1.getClassVar()+"

m2.ClassVar="+m2.getClassVar());

m1.setInstanceVar(11);

m2.setInstanceVar(22);

System.out.println("m1.InstanceVar="+m1.getInstanceVar

()+" m2.InstanceVar="+m2.getInstanceVar());

}

}

运行结果

b13fb9658ce76d36bbfe82f28ae80922.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值